AbstractFactory
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Абстрактная фабрика — это порождающий паттерн проектирования, который позволяет создавать семейства связанных объектов, не привязываясь к конкретным классам создаваемых объектов. Абстрактная фабрика задаёт интерфейс создания всех доступных типов продуктов, а каждая конкретная реализация фабрики порождает продукты одной из вариаций. Клиентский код вызывает методы фабрики для получения продуктов, вместо самостоятельного создания с помощью оператора new. При этом фабрика сама следит за тем, чтобы создать продукт нужной вариации. В данном примере у создаваемых объектов - юнитов игры WarCraft есть 2 иерархии: Раса - Orc, Human, Undead; Типы юнитов - Warrior, Archer, Mage; Естественнно у каждой рассы юниты со своими особенностями У каждой расы есть своя фабрика: HumanFactory OrcFactory UndeadFactory Наследующиеся от Интерфейса IAbstractUnitFactory За счет такого разделения мы можем в методе Main легко заменять фабрики с одной расы на другую и порождать юниты разных типов не задумываясь о выборе расы, выбранная фабрика решает это за нас.