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

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

порождающий

Описан в Design Patterns

Да

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

Содержание

Цель

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

Плюсы

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

Минусы

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

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

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

Пример Java

Пример С++

Пример С#

Пример JavaScript

Пример Delphi

Пример Python

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

Пример PHP5

Пример VB.NET

Пример Ruby

Литература

  • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования = Design Patterns: Elements of Reusable Object-Oriented Software. — СПб: «Питер», 2007. — С. 366. — ISBN 978-5-469-01136-1 (также ISBN 5-272-00355-1)

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Абстрактная фабрика (шаблон проектирования)" в других словарях:

  • Фабрика (шаблон проектирования) — Фабричный метод (англ. Factory Method) порождающий шаблон проектирования, предоставляющий подклассам интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой класс инстанциировать. Иными словами,… …   Википедия

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

  • Шаблон проектирования — У этого термина существуют и другие значения, см. Паттерн. В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) повторимая архитектурная конструкция, представляющая собой решение проблемы… …   Википедия

  • Фабричный метод (шаблон проектирования) — Шаблон проектирования Фабричный метод Factory Method Тип: порождающий Описан в Design Patterns Да Фабричный метод (англ. Factory Method)  порождающий шаблон проектирования, предоставляющий подклассам интерфейс для созда …   Википедия

  • Шаблонный метод (шаблон проектирования) — Шаблон проектирования Шаблонный метод Template method Тип: поведенческий Описан в Design Patterns Да …   Википедия

  • Отложенная инициализация (шаблон проектирования) — Отложенная (ленивая) инициализация (англ. Lazy initialization). Приём в программировании, когда некоторая ресурсоёмкая операция (создание объекта, вычисление значения) выполняется непосредственно перед тем, как будет использован её результат.… …   Википедия

  • Ленивая инициализация (шаблон проектирования) — Отложенная (ленивая) инициализация (англ. Lazy initialization). Приём в программировании, когда некоторая ресурсоёмкая операция (создание объекта, вычисление значения) выполняется непосредственно перед тем, как будет использован её результат.… …   Википедия

  • Интерфейс (шаблон проектирования) — Шаблон проектирования Интерфейс Interface Описан в Design Patterns Нет В информатике, шаблон интерфейса не является особым шаблоном среди шаблонов проектирования. Он является общим методом для структурирования компьютерных программ для того …   Википедия

  • Состояние (шаблон проектирования) — Шаблон проектирования Состояние State Тип: поведенческий Описан в Design Patterns Да Состояние (англ. State)  шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект …   Википедия

  • Приспособленец (шаблон проектирования) — Шаблон проектирования Приспособленец Flyweight Тип: структурный Описан в Design Patterns Да Приспособленец (англ. Flyweight)  это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»