Lt304888.ru

Туристические услуги

Абстрактная фабрика (шаблон проектирования)

13-08-2023

Шаблон проектирования
Абстрактная фабрика
Abstract factory
Тип:

порождающий

Описан в Design Patterns

Да

Абстрактная фабрика (англ. Abstract factory)порождающий шаблон проектирования, позволяющий изменять поведение системы, варьируя создаваемые объекты, при этом сохраняя интерфейсы. Он позволяет создавать целые группы взаимосвязанных объектов, которые, будучи созданными одной фабрикой, реализуют общее поведение. Шаблон реализуется созданием абстрактного класса Factory, который представляет собой интерфейс для создания компонентов системы (например, для оконного интерфейса он может создавать окна и кнопки). Затем пишутся наследующиеся от него классы, реализующие этот интерфейс.

Содержание

Цель

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

Плюсы

  • изолирует конкретные классы;
  • упрощает замену семейств продуктов;
  • гарантирует сочетаемость продуктов.

Минусы

  • сложно добавить поддержку нового вида продуктов.

Применимость

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

Пример Java

Пример С++

Пример С#

Пример JavaScript

Пример Delphi

Пример Python

На практике в Python этот паттерн применяется редко.

Пример PHP5

Пример VB.NET

Пример Ruby

См. также

Ссылки

  • Паттерн Abstract Factory (абстрактная фабрика) — назначение, описание, реализация на С++, достоинства и недостатки


Абстрактная фабрика (шаблон проектирования).

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01