在我的一个项目中,我必须实施工厂设计模式来解决特定问题。工厂设计模式和钻石OOP问题
我有一个父接口和两个子接口。在下一个阶段,我必须创建一个工厂,它将根据给定的输入返回特定类的实例。
请参阅下面的示例代码,其中解释了我的问题以及示例图。
范例图
示例代码
enum AnimalType{ DOG, CAT }
Class Factory{
public Animal getInstance(AnimalType animalType){
Animal animal = null;
switch(animalType){
case DOG: animal = new Dog();
break;
case CAT: animal = new Cat();
break;
default:
break;
}
return animal;
}
}
/*Actual Problem */
Animal animal = Factory.getInstance(AnimalType.DOG);
/* When I use any IDE like IntellijIdea or Eclipse it only provides eat() method after animal and dot (ie. animal.) */
animal.<SHOULD PROVIDE eat() and woof() from Dog> but it is only providing eat()
任何意见,解决这个问题?或者,我应该考虑任何其他设计模式来解决这个问题吗?
它被宣布为动物,而不是狗。宣布'动物'为'狗',然后尝试。 – ifly6