Прочитал статью Фабричный метод на PHP
Там есть пример из реальной жизни. В общем, помогите понять в чем преимущество этого шаблона? Тоже самое можно сделать проще без выноса мозга с кучей классов
я вынес на гитхаб их пример и свой альтернативный. Оба примера рабочие и делают абсолютно тоже самое. Пробовал анализировать на возможное расширение функционала, тоже не нашел преимуществ фабричного метода
Ну там пример маленький и его легко так переделать, можно вместо этого представить, что по каким-то причинам коннекторы должны быть именно отдельными большими классами, и/или таких штук несколько.
Или другая ситуация, когда в зависимости от каких-то условий каждый метод должен вернуть разные объекты.
даже если вынести коннекторы в отдельный класс, то непонятно зачем нужен фабричный метод. Этот пример позиционируется как реальный пример из жизни.
По вашей ссылке еще не читал, спасибо
В общем разобрался. Я не сразу понял, что это действительно просто один метод который переопределяется в классах потомках и который возвращает какой-либо объект. Естественно для консистентности данных нужно, чтобы классы были имплементированы общим интерфейсом или имели общего родителя.
Пример который был приведен на RefactoringGuru неудачный. Путает явной возможностью все упростить.