Книга: Погружение в Паттерны Проектирования
Назад: Фабричный метод
Дальше: Строитель
, но очередные изменения предполагают введение новых типов продуктов.

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

Шаги реализации

  1. Создайте таблицу соотношений типов продуктов к вариациям семейств продуктов.

  2. Сведите все вариации продуктов к общим интерфейсам.

  3. Определите интерфейс абстрактной фабрики. Он должен иметь фабричные методы для создания каждого из типов продуктов.

  4. Создайте классы конкретных фабрик, реализовав интерфейс абстрактной фабрики. Этих классов должно быть столько же, сколько и вариаций семейств продуктов.

  5. Измените код инициализации программы так, чтобы она создавала определённую фабрику и передавала её в клиентский код.

  6. Замените в клиентском коде участки создания продуктов через конструктор вызовами соответствующих методов фабрики.

Преимущества и недостатки

Отношения с другими паттернами

Дополнительные материалы

Назад: Фабричный метод
Дальше: Строитель

asd
asdda