Wzorce projektowe to sprawdzone rozwiązania często powtarzających się problemów projektowych w programowaniu obiektowym. Nie są gotowym kodem do skopiowania, ale opisują sposób organizacji klas, obiektów i zależności między nimi.
Najczęściej dzieli się je na trzy główne grupy.
Wzorce kreacyjne
Dotyczą sposobu tworzenia obiektów. Pomagają ukryć szczegóły tworzenia instancji i ułatwiają wymianę konkretnych klas.
Przykłady:
- Fabryka abstrakcyjna (Abstract Factory),
- Factory Method,
- Singleton,
- Builder,
- Prototype.
Wzorce strukturalne
Dotyczą budowy i łączenia klas oraz obiektów w większe struktury. Ułatwiają upraszczanie zależności, opakowywanie obiektów lub dopasowywanie interfejsów.
Przykłady:
- Fasada (Facade),
- Adapter,
- Dekorator,
- Kompozyt,
- Proxy,
- Most,
- Flyweight.
Wzorce behawioralne
Opisują zachowanie obiektów oraz sposób komunikacji między nimi.
Przykłady:
- Obserwator (Observer),
- Metoda szablonowa (Template Method),
- Strategia,
- Iterator,
- Command,
- Mediator.
Jak zapamiętać?
- Kreacyjne: jak tworzyć obiekty?
- Strukturalne: jak połączyć obiekty i klasy?
- Behawioralne: jak obiekty się zachowują i komunikują?
W pytaniu egzaminacyjnym wzorcem strukturalnym jest Fasada, ponieważ upraszcza dostęp do złożonego systemu przez jeden wspólny interfejs.