print
A A A

Zasady projektowania

Wzorce starają się propagować następujące zasady programowana obiektowego:

  • programuj pod kątem interfejsów (abstrakcji), a nie implementacji
  • przedkładaj składanie obiektów nad dziedziczenie
  • wyodrębniaj to co może się zmieniać i hermetyzuj w osobnych klasach
  • projektuj klasy tak, aby były otwarte dla rozszerzeń i zamknięte dla modyfikacji (zasada otwarte-zamknięte, open-closed principle)
  • staraj się aby klasy miały spójną wewnętrzną strukturę (najlepiej tylko jeden zakres odpowiedzialności), a powiązania z innymi klasami były luźne i elastyczne

Wzorce starają się przeciwdziałać sytuacjom utrudniającym modyfikacje i ponowne użycie kodu, takim jak (w nawiasie nazwy odpowiednich wzorców):

  • konstruowanie obiektów przez jawne podanie klasy (Fabryka Abstrakcyjna, Metoda Wytwórcza, Prototyp)
  • uzależnienie kodu od konkretnych operacji (Polecenie, Łańcuch Zobowiązań)
  • uzależnienie od platformy sprzętowej lub programowej (Fabryka Abstrakcyjna, Most)
  • uzależnienie od konkretnej reprezentacji lub implementacji obiektów (Fabryka Abstrakcyjna, Most, Pamiątka, Pełnomocnik)
  • uzależnienie od konkretnego algorytmu (Budowniczy, Iterator, Metoda Szablonowa, Odwiedzający, Strategia)
  • ścisłe powiązanie klas (Fabryka Abstrakcyjna, Fasada, Łańcuch Zobowiązań, Mediator, Most, Obserwator, Polecenie)
  • rozszerzanie funkcjonalności przez stosowanie podklas (Dekorator, Kompozyt, Łańcuch Zobowiązań, Most, Obserwator, Strategia)
  • brak możliwości łatwej modyfikacji klas (Adapter, Dekorator, Odwiedzający)

«Przykład wzorca - Strategia     Testowanie, wdrożenie, konserwacja»