Паттерн Фабричный метод. В чем приемущество?

Прочитал статью Фабричный метод на PHP
Там есть пример из реальной жизни. В общем, помогите понять в чем преимущество этого шаблона? Тоже самое можно сделать проще без выноса мозга с кучей классов

я вынес на гитхаб их пример и свой альтернативный. Оба примера рабочие и делают абсолютно тоже самое. Пробовал анализировать на возможное расширение функционала, тоже не нашел преимуществ фабричного метода

оригинал: patterns/index.php at main · Eyvind8/patterns · GitHub

альтернативный: patterns/index1.php at main · Eyvind8/patterns · GitHub

Ну там пример маленький и его легко так переделать, можно вместо этого представить, что по каким-то причинам коннекторы должны быть именно отдельными большими классами, и/или таких штук несколько.

Или другая ситуация, когда в зависимости от каких-то условий каждый метод должен вернуть разные объекты.

В https://refactoring.guru/ru/design-patterns/factory-method внизу еще про возможность расширения библиотеки.

даже если вынести коннекторы в отдельный класс, то непонятно зачем нужен фабричный метод. Этот пример позиционируется как реальный пример из жизни.
По вашей ссылке еще не читал, спасибо

это уже другая история, но тут согласен. Тогда вынос в отдельные классы оправдан. Они по сути сами станут простыми фабриками.

В общем разобрался. Я не сразу понял, что это действительно просто один метод который переопределяется в классах потомках и который возвращает какой-либо объект. Естественно для консистентности данных нужно, чтобы классы были имплементированы общим интерфейсом или имели общего родителя.
Пример который был приведен на RefactoringGuru неудачный. Путает явной возможностью все упростить.

кому интересно, написал свой пример patterns/index-my.php at main · Eyvind8/patterns · GitHub

1 лайк