https://refactoring.guru/ru/design-patterns/catalog
https://github.com/domnikl/DesignPatternsPHP
ЛИКБЕЗ читать обязательно
на аглийском
https://www.apphp.com/tutorials/index.php?page=creational-design-patterns-in-php
Фабричный метод - это метод, который обычно возвращает объект какого-либо интерфейса
Абстрактная фабрика = несколько фабричных методов => можно в этой фабрике сделать взаимодействие объектов фабричных интерфейсов.
Строитель концентрируется на построении сложных объектов шаг за шагом. Абстрактная фабрика специализируется на создании семейств связанных продуктов. Строитель возвращает продукт только после выполнения всех шагов, а Абстрактная фабрика возвращает продукт сразу же.
Абстрактная фабрика, Строитель и Прототип могут быть реализованы при помощи Одиночки.
https://refactoring.guru/ru/design-patterns/abstract-factory/php/example#AbstractFactoryStructural.php
В этом примере Абстрактная фабрика создаёт кросс-платформенные элементы интерфейса и следит за тем, чтобы они соответствовали выбранной операционной системе.
Пример кросс-платформенного графического интерфейса пользователя.
https://refactoring.guru/ru/design-patterns/factory-method/php/example#FactoryMethodStructural.php
В этом примере Фабричный метод помогает создавать кросс-платформенные элементы интерфейса, не привязывая основной код программы к конкретным классам элементов.
Пример кросс-платформенного диалога.