Я новичок в шаблонах проектирования, и теперь я изучаю шаблон фабричного метода.Я пытаюсь сделать пример, используя животных.
У меня есть интерфейс Animal с двумя методами: дышать и ходить.Реализуя этот интерфейс, у меня есть два класса, Giraffe и Flamingo.
Следуя шаблону, у меня есть две фабрики, одна для Giraffes и одна для Flamingo и основной класс, подобный этому:
if (color.equals("yellow")) {
factory = new GiraffeFactory();
} else {
factory = new FlamingoFactory();
}
Animal animal = factory.createAnimal();
animal.breathe();
animal.walk();
Thisработает отлично, но теперь я понимаю, что фламинго могут летать.Я не хочу включать этот метод в интерфейс Animal, потому что Жирафы не могут.
Как я могу вызвать этот новый метод только в экземплярах Flamingo Animal?Является ли бросок единственным решением?Или этот шаблон только для объектов, которые имеют те же методы из своего интерфейса?
((Flamingo) animal).fly();
Большое вам спасибо.