print
A A A

Wzorce projektowe

Wzorce projektowe są przykładami konstrukcji architektonicznych służących do rozwiązania konkretnych problemów często pojawiających się w praktyce programistycznej.

Wzorce nie są konstrukcjami teoretycznymi, ale odzwierciedleniem dobrych praktyk projektowania kodu. Z założenia przedstawiają szkic (schemat) rozwiązania, który należy uszczegółowić i dostosować do konkretnego kontekstu. Wzorce są realizacją koncepcji ponownego użycia, ale w odniesieniu do idei, struktury, architektury, a nie konkretnego kodu.

Standard prezentacji wzorców ustalony został w pierwszej poświęconej wzorcom książce (Gamma et al. 95) i obejmuje następujące, kolejno prezentowane elementy:

  • nazwa wzorca (powinna oddawać istotę wzorca)
  • przeznaczenie – zwięzła charakterystyka motywacji i celu wzorca
  • inne nazwy (wzorce mogą funkcjonować w różnych kontekstach i różnych wariantach przed oficjalną klasyfikacją
  • uzasadnienie stosowania – ogólny opis problemu i jego rozwiązania za pomocą wzorca w postaci scenariusza
  • stosowalność – przedstawienie różnych kontekstów użycia wzorca
  • struktura – najczęściej w postaci diagramu UML
  • uczestnicy – szczegółowy opis klas i obiektów uczestniczących w realizacji wzorca
  • współpraca – prezentacja współdziałania uczestników w trakcie realizacji zobowiązań
  • konsekwencje – rozmaite aspekty zastosowania wzorca, np. wpływ wzorca na elastyczność, wydajność, zarządzanie pamięcią, stopień złożoności kodu itp.
  • implementacja – uwarunkowania, które należy uwzględnić przy kodowaniu wzorca
  • znane zastosowania – konteksty, w których wzorzec był już stosowany w praktyce
  • pokrewne wzorce – wzorce stosowane w podobnych, ale różnych, sytuacjach, wzorce o zbliżonej strukturze, wzorce współpracujące

W przykładowych wzorcach stosować będziemy uproszczony opis zawierający następujące elementy:

  • nazwa wzorca
  • opis sytuacji, w której stosujemy wzorzec (motywacja do jego stosowania, problem, który wzorzec rozwiązuje)
  • opis wzorca w postaci struktury klas i obiektów, ich wzajemnych zależności i interakcji (najczęściej w postaci diagramów UML)
  • opis uwarunkowań stosowania wzorca (wady i zalety, sposoby konkretnej implementacji, przykłady)

Wzorce dzielą się na trzy grupy:

  • kreacyjne – służące do organizacji tworzenia obiektów klas
  • strukturalne – wskazujące optymalną strukturę hierarchii klas
  • czynnościowe – przedstawiające odpowiednią hierarchię klas i funkcjonowanie obiektów przy realizacji określonych czynności

Podane przykłady obejmują wzorce z wszystkich grup:

  • kreacyjny – Fabryka Abstrakcyjna
  • strukturalny – Most
  • czynnościowe – Strategia, Iterator

«Refaktoryzacja     Przykład wzorca - Most»