Фабричный метод (шаблон проектирования)

Фабричный метод — шаблон проектирования, порождающий классы. Другое название — Virtual Constructor (виртуальный конструктор). Относится к порождающим шаблонам проектирования.


Назначение

Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование подклассам. Используется, когда:

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

Структура

Основными классами в Фабричном методе являются Создатель (Creator) и Продукт (Product). Creator’у необходимо создать экземпляры Product’а, но конкретный тип Product’а не должен задаваться в коде Creator’а — подклассы Creator’а должны иметь возможность задавать подклассы Product’а.

Для достижения этой цели в классе Creator’а задаётся абстракный метод (фабричный метод). Этот метод возвращает объект типа Product. Подклассы Creator’а могут замещать этот метод для возвращения указателей на подклассы Product’а.


порождающие шаблоны проектирования
абстрактная фабрика | строитель | фабричный метод | прототип | одиночка | ленивая инициализация


шаблоны проектирования
порождающие шаблоны | шаблоны поведения | структурные шаблоны | шаблоны параллельного программирования
 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home