Seria 3 pytań uczestników, które pojawiły się podczas szkolenia Wzorce projektowe i refaktoryzacja kodu w języku PHP realizowanego w dniach 20-21.12.2017r..
W wzorcu Abstract Factory definiujemy interfejs lub klasę abstrakcyjną która ma publiczną metodę która zwraca obiekt spodziewanego typu, we wzorcu Factory Method dziedziczmy po klasie abstrakcyjnej gdzie możemy nadpisać metodę "protected" która tworzy obiekt danego typu. Publiczna metoda w klasie bazowej wykonuje operacje na tym utworzonym przez nas obiekcie.
Dekoratora możemy użyć np. do tego aby wyciągnąć dane dla jednej encji w dwóch źródeł danych. Tworzymy wtedy interfejs repozytorium który implementujemy np. dla Doctrine następnie tworzymy repozytorium dekorujące interfejs które używa również inne źródło danych (np. przez REST) które wyciąga dla naszej encji inne informacje.
Do projektowania komunikacji między obiektami oraz testów jednostkowych używam phpspeca, do sprawdzenia poprawności konkretnej implementacji i testów integracyjnych phpunita. To są bardzo przydatne narzędzia w refactoringu narzędzia. Przydaje się też dobre IDE takie jak PHPStorm to przeprowadzania najbardziej popularnych refactoringów.