Наглядный пример паттерна Абстрактная фабрика

Наглядный пример

Намерение

Согласно GoF, цель шаблона Абстрактная фабрика состоит в следующем:

«Предоставить интерфейс для создания семейств связанных или зависимых объектов без указания их конкретных классов».

Пример

В приведенном ниже примере мы обнаруживаем, что так же, как шаблон Заводской метод - это просто шаблон Шаблонный метод, применяемый к созданию объекта, так и Шаблон> Абстрактная фабрика шаблон Стратегия применительно к созданию объекта. Шаблон Абстрактная фабрика помогает в создании наборов совместимых объектов, которые можно заменять друг на друга.

Некоторые лакомые кусочки

Состав против наследования

Как и в случае с шаблоном Стратегия, композиция используется для отделения набора совместимых объектов, того, что это за объекты и как эти объекты создаются, от класса, который использует эти объекты.

Когда использовать паттерн Абстрактная фабрика

Вы должны использовать шаблон Абстрактная фабрика всякий раз, когда у вас есть система, которая должна оставаться независимой от того, как ее объекты создаются, скомпонованы и представлены.

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

Шаблон Абстрактная фабрика также можно использовать для выявления интерфейсов семейств объектов, но скрытия их реализации.

Преимущества паттерна Абстрактная фабрика

Шаблон Абстрактная фабрика упрощает создание семейств объектов и управление ими. Это также упрощает замену одного семейства объектов на другое, поскольку они имеют общий интерфейс. Это способствует единообразию продуктовых семейств, что приводит к приятному, хотя и более жесткому дизайну.

Углубляясь

Шаблон Абстрактная фабрика - это лишь один из нескольких шаблонов, связанных с созданием объектов в коде. Чтобы узнать больше, ознакомьтесь с основополагающей работой по шаблонам дизайна: Книга шаблонов дизайна GOF.