• Система должна оставаться независимой как от процесса
создания новых объектов, так
и от типов порождаемых объектов. Непосредственное использование выражения new в
коде приложения;
• Необходимо создавать группы или семейства взаимосвязанных объектов,
исключая
возможность одновременного использования объектов из разных семейств в
одном
контексте.
Для решения задачи по созданию семейств взаимосвязанных объектов шаблон «Абстрактная
фабрика» вводит понятие абстрактной фабрики. Абстрактная
фабрика представляет собой
некоторый полиморфный базовый класс, назначением которого является объявление
интерфейсов фабричных методов, служащих для создания продуктов всех основных типов (один
фабричный
метод на каждый тип продукта).
Производные от него классы, реализующие эти
интерфейсы, предназначены для создания продуктов всех типов внутри семейства или группы.
Обобщённая диаграмма классов выглядит следующим образом:
CarthaginianHorseman
Input
Достарыңызбен бөлісу: