6

Abstarct Factory Pattern

Тип: порождающий шаблон


Назначение: обеспечивает создание семейств взаимосвязанных или зависящих друг от друга

объектов без указания их конкретных классов.

Является развитием паттерна Factory Method.

Используется в следующих случаях:

- система не должна зависеть от способа создания объектов;

- система работает с одним из нескольких семейств объектов;

- объекты внутри семейства взаимосвязаны.


Программа обращается к классу-конструктору фабрик FactoryProducer, создавая два класса-фабрики CatFactory и DogFactory - наследники с реализацией абстрактного класса AbstractFactory. Классы фабрики создают 3 объекта класса Cat и 3 объекта класса Dog.

Создаем классы-интерфейсы Cat и Dog:

Cat.java, Dog.java

Создаем наследников класса Cat с реализацией его функций:

ThinCat.java, NormalCat.java, FatCat.java

Создаем наследников класса Dog с реализацией его функций:

ThinDog.java, NormalDog.java, FatDog.java

Создаем абстрактный класс AbstractFactory:

AbstractFactory.java

Создаем классы-фабрики CatFactory и DogFactory:

CatFactory.java, DogFactory.java

Создаем класс-конструктор фабрик FactoryProducer:

FactoryProducer.java

Основной класс AbstractFactoryPatternCvsD:

AbstractFactoryPatternCvsD.java

И что выводит программа:

С вами был Salem, на 100 лет проклятый быть криворуким программистом...

Правила сообщества

Прошу воздержаться от взаимных оскорблений.

Больше позитива, ведь программирование - это весело)