(ang. Design Patterns)
Wzorce projektowe to uniwersalne, sprawdzone w praktyce rozwiązania często pojawiających się, powtarzalnych problemów projektowych. Pokazują powiązania i zależności pomiędzy klasami oraz obiektami i ułatwiają tworzenie, modyfikację oraz utrzymanie kodu źródłowego. Są one opisem rozwiązania, a nie jego implementacją.
Wzorce projektowe stosowane są w projektach wykorzystujących programowanie obiektowe.
Wzorce projektowe wywodzą się z architektury. Opracowane przez austriackiego architekta Christophera Alexandra miały ułatwić konstruowanie mieszkań i pomieszczeń biurowych. Ostatecznie jednak nie znalazły szerszego zastosowania w tej dziedzinie.
Inaczej stało się w informatyce. Termin wzorca projektowego został wprowadzony do programowania przez Kenta Becka oraz Warda Cunninghama w 1987 roku. Następnie zyskał popularność dzięki wydanej w 1995 książce „Wzorce projektowe: Elementy oprogramowania obiektowego wielokrotnego użytku” autorstwa Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson oraz John Vlissides).
Wyróżniamy trzy rodzaje wzorców projektowych:
- wzorce kreacyjne – zajmują się tworzeniem i konfiguracją skomplikowanych obiektów
- wzorce strukturalne – dzięki zastosowaniu pewnego modelu architektonicznego pozwalają na rozszerzanie odpowiedzialności klasy czy zaoszczędzenie pewnej ilości miejsca w pamięci
- wzorce behawioralne – służą do dynamicznego modyfikowania bądź zupełnej zmiany zachowań naszego programu

W kolejnych wpisach postaram się przybliżyć kilka powszechnie stosowanych wzorców projektowych wraz z przykładowym kodem w języku Java ☕︎.
