Budowniczy (Builder)

Budowniczy jest kreacyjnym wzorcem projektowym, który daje możliwość tworzenia złożonych obiektów etapami, krok po kroku. Wzorzec ten pozwala produkować różne typy oraz reprezentacje obiektu używając tego samego kodu konstrukcyjnego.

Fabryka Abstrakcyjna cz.2

Intencją wzorca fabryki abstrakcyjnej jest zapewnienie interfejsu do tworzenia rodzin powiązanych lub zależnych obiektów bez określania ich konkretnych klas.

Fabryka abstrakcyjna

Fabryka abstrakcyjna jest kreacyjnym wzorcem projektowym, który udostępnia interfejs do tworzenia rodzin powiązanych lub zależnych obiektów bez określania ich konkretnych klas. Czyli pozwala tworzyć rodziny spokrewnionych ze sobą obiektów bez określania ich konkretnych klas.

Metoda Wytwórcza cz.2

Jak już wiemy intencją wzorca jest zdefiniowanie interfejsu do tworzenia obiektów, ale to podklasy decydują, którą klasę utworzyć. Innymi słowy, metoda fabryczna pozwala klasie odroczyć tworzenie instancji do podklas.

Metoda wytwórcza

Metoda wytwórcza to wzorzec projektowy, którego celem jest dostarczenie interfejsu dla klas odpowiedzialnych za tworzenie konkretnego typu obiektów. Metoda wytwórcza definiuje standardowy sposób tworzenia obiektów w sposób niezależny od ich rodzaju. Rozwiązuje problem tworzenia obiektów bez określania ich konkretnych klas.

Czym są wzorce projektowe?

Wzorce projektowe to typowe rozwiązania problemów z projektowaniem oprogramowania, które wciąż napotykasz podczas tworzenia aplikacji w świecie rzeczywistym.

Wzorce Projektowe

Wzorce Projektowe to sprawdzone w praktyce, uniwersalne rozwiązania często pojawiających się problemów podczas projektowania aplikacji. Wzorce projektowe tworzone są najczęściej w oparciu o programowanie obiektowe.

Dependency Inversion Principle – DIP

Moduły wysokopoziomowe nie powinny zależą od modułów niskopoziomowych, obie grupy modułów powinny zależeć od abstrakcji. Abstrakcje nie powinny zależeć od szczegółów rozwiązania, to szczegóły powinny zależeć od abstrakcji.

Interface Segregation Principle – ISP

Teraz omówimy zasadę segregacji interfejsów jest to czwarta zasada SOLID, która opisuje, jak powinniśmy projektować i używać interfejsy w naszych aplikacjach. Zasada ta stanowi, że klienci (klasy) nie powinni być zmuszani do polegania na metodach, których nie używają. Kilka dedykowanych interfejsów jest lepsze niż jeden, który jest zbyt ogólny.

Liskov Substitution Principle – zastosowanie LSP

Przyjrzyjmy się teraz, jak możemy zastosować zasadę LSP w naszej aplikacji myjni samochodowej. Użytkownicy naszej aplikacji, zgłosili nam mały błąd który wprowadziliśmy, gdy modyfikowaliśmy nasz kod wprowadzając wzorzec fabryki DetailsPricingFactory do tworzenia różnych instancji typów mycia, teraz musimy to naprawić.

Liskov Substitution Principle – LSP

Teraz porozmawiamy o zasadzie podstawiania Liskov. Zasada podstawiania Liskov lub LSP, to trzecia z zasad SOLID która mówi, że:
Funkcje, które używają wskaźników lub referencji do klas bazowych,
muszą być w stanie używać również obiektów klas dziedziczących
po klasach bazowych, bez dokładnej znajomości tych obiektów.

Open/Closed Principle – zastosowanie OCP

Wyobraźmy sobie teraz hipotetycznie, że przychodzi nasz klient dla którego robimy aplikację i pojawia się nowy wymóg, który zmienia sposób działania naszej aplikacji w niektórych przypadkach. I to jest częsta, bardzo życiowa sytuacja która zdarza się nieustannie. I tak się składa, że firma postanowiła dodać nowy typ mycia Premium i potrzebujemy mechanizmu do obsługi tego nowego typu mycia.