Изучаем паттерны: Cat Factory Method
Цель паттерна:
Создается специфический класс - интерфейс базового абстрактного класса (создатель интерфейса определяет имена методов, списки аргументов и типы возвращаемых значений, но не тела методов). Конкретная реализация класса-наследника определяется тем, какие параметры были переданы при создании.
Это позволяет использовать в коде программы не специфические классы, а манипулировать абстрактными объектами на более высоком уровне.
Используется в следующих случаях:
- класс не имеет информации о том, какой тип объекта он должен создать;
- класс передает ответственность по созданию объектов наследникам;
- необходимо создать объект в зависимости от входящих данных.
Реализация класса:
Создается класс-интерфейс Cat и реализацию его функций в потомках класса Cat. Далее создается класс-фабрика CatFactory.
Класс CatFactoryDemo использует класс-фабрику CatFactory для создания объектов класса Cat. Мы передаем параметр - коэффициент веса кота, для определения того, какой кот будет создан с помощью функции getCatMassFactor().
Шаг первый:
Создаем класс-интерфейс Cat.java
Шаг второй:
Создаем классы, имеющие интерфейс Cat и реализацией метода toJump()
ThinCat.java
NormalCat.java
FatCat.java
Шаг третий:
Создаем класс-фабрику CatFactory для генерирования различных объектов класса Cat на основе переданной в класс-фабрику CatFactory информации.
CatFactory.java
Шаг четвертый:
Создаем класс CatFactoryDemo, который использует класс-фабрику CatFactory для создания объектов класса Cat.
CatFactoryDemo.java
Программа выведет результат:
ThinCat has jumped-up like a bird.
NormalCat has jumped-up.
FatCat can't jump.
Главный минус метода - необходимость создавать наследника Creator для каждого нового типа продукта.
На том и откланяюсь.) уж больно спать хочется)












Задачки для изучающих Java
43 поста1.7K подписчиков
Правила сообщества
Прошу воздержаться от взаимных оскорблений.
Больше позитива, ведь программирование - это весело)