Facade

Fasada (Facade)

Fasada zapewnia ujednolicony interfejs do zestawu interfejsów w podsystemie. Ten wzorzec definiuje interfejs wyższego poziomu, który ułatwia korzystanie z podsystemu.

Singleton

Singleton jest kreacyjnym wzorcem projektowym, który zapewnia, że klasa ma tylko jedną instancję i zapewnia globalny punkt dostępu do tej instancji.

Prototype

Prototyp (Prototype)

Prototyp jest kreacyjnym wzorcem projektowym, który umożliwia kopiowanie już istniejących obiektów. To dość prosty wzorzec.

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

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

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.

Factory Method

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.

Factory Method

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.

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ć.