Niedawno postanowiłem stworzyć bibliotekę na githubie z wzorcami projektowymi w PHP. Sukcesywnie dodaje tam nowe wzorce wraz z testami, które w momencie pisania tego posta stanowią 91% pokrycia kodu. Jeśli chcesz zostać dobrym programistą i pisać kod, który jest zdatny do ponownego użycia zamknięty na modyfikację, ale łatwy do rozszerzenia pownieneś zacząć interesować się wzorcami obiektowymi.
Obecnie zaimplementowałem takie wzorce jak:
- Behawioralne(czynnościowe)
- Adapter – dostosowuje interfejs klasy do nowych warunków bez modyfikacji oryginalnej klasy.
- Łańcuch zobowiązań – Pozwala by żadanie zostało przetworzone przez rózne handlery w zależności od typu
- Pamiątka – pozwala zachować stan obiektu bez naruszania enkapsulacji
- Obserwator – Definuje relacje jeden do wiele pomiędzy obiektami i w przypadku gdy jeden obiekt się zmieni informuje on zależne obiekty, które aktualizują swój stan
- Stan – pozwala na zmianę zachowania obiektu poprzez zmianę stanu wewnętrznego obiektu
- Strategia – pozwala stworzyc rodzinę algorytmów i w łatwy sposób je wymieniać podczas wykonywania aplikacji/skryptu
- Kreacyjne(konstrukcyjne)
- Fabryka – definuje interfejs do tworzenai obiektu, ale pozwala podklasom decydować, którą klasę zainicjalizować
- Strukturalne
- Dekorator – pozwala dodać nowe możliwości do klasy bez modyfikowania oryginalnej.
Wkrótce postaram zaimplementować takie wzorce jak:
Fabryka abstrakcyjna, Budowniczy, Prototyp, Mostek, Kompozyt, Fasada, Pyłek, Pośrednik, Polecenie, Interpreter, Mediator, Wizytor
Odnośniki do biblioteki:
instalacja przez composer-a
composer require rpodwika/designpatterns
Zostaw komentarz