Паттерн Фабричный Метод определяет интерфейс создания объекта, но позволяет субклассам выбрать класс создаваемого экземпляра. Таким образом, Фабричный Метод делегирует операцию создания экземпляра субклассам.
Паттерн Абстрактная Фабрика предоставляет интерфейс создания семейств взаимосвязанных или взаимозависимых объектов без указания их конкретных классов.
Задача:
Фабрика инкапсулирует подробности создания объектов. Метод orderPizza() становится обычным клиентом фабрики SimplePizzaFactory. Каждый раз, когда ему понадобится новая пицца, он просит фабрику ее создать. сеть пиццерий PizzaStore по всей стране. Вы как правообладатель желаете обеспечить высокое качество пиццы в заведениях, работающих под вашей маркой, и поэтому требуете, чтобы они использовали ваш проверенный код. Но что делать с региональными различиями? Заведения могут предлагать разные стили пиццы в зависимости от своего местонахождения (Нью-Йорк, Чикаго, Калифорния и т. д.) и предпочтений местных ценителей итальянской кухни.
