Паттерн (шаблон) проектирования — это продуманный способ построения исходного кода программы для решения часто возникающих в повседневном программировании проблем проектирования. Иными словами, это уже придуманное решения, для типичной задачи. При этом паттерн не готовое решение, а просто алгоритм действий, который должен привести к желаемому результату. Давайте рассмотрим один из наиболее часто используемых порождающих паттернов — Абстрактная фабрика (Abstract Factory).
Как я уже писал ранее, существует три вида паттернов проектирования:
- Порождающие паттерны позволяют возможность выполнять инициализацию объектов наиболее удобным и оптимальным способом.
- Структурные паттерны описывают взаимоотношения между различными классами или объектами, позволяя им совместно реализовывать поставленную задачу.
- Поведенческие паттерны позволяют грамотно организовать связь между сущностями для оптимизации и упрощения их взаимодействия.
Абстрактная фабрика (Abstract Factory) – это порождающий паттерн, предоставляющий возможность создания семейства взаимосвязанных или родственных объектов, не специфицируя их классов. То есть, мы определяем интерфейс для создания взаимосвязанных объектов, без необходимости реализации конкретных классов.
Давайте рассмотрим диаграмму абстрактной фабрики.
Abstract Factory Uml
AbstractFactory — объявляет интерфейс для создания семейства взаимосвязанных или родственных объектов
AbstractProductA, AbstractProductB — семейство продуктов, которые будут использоваться клиентом для выполнения своих задач
ProductA1, ProductB1 — конкретные типы продуктов
Client — клиент фабрики, который получает конкретные продукты для реализации своего поведения
Рассмотрим обобщенное описание логики создания Абстрактной фабрики:
- Создать класс абстрактной фабрики
- Создать классы конкретных фабрик
- Создать классы абстрактных объектов
- Создать классы конкретных объектов
По ссылке https://shwanoff.ru/abstract-factory/ доступно продолжение статьи с примером исходного кода на языке C#.