Wzorce projektowe i refaktoryzacja kodu w języku PHP - 3 pytania i odpowiedzi ze szkolenia (grudzień 2017)

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..


Czym różni się wzorzec Factory Method od Abstract Factory?

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.

Do czego możemy użyć wzorzec "Dekoratora"?

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.

Jakie narzędzia najczęściej używasz do przeprowadzenia refactoringu?

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.