在我的一個項目中,我必須實施工廠設計模式來解決特定問題。工廠設計模式和鑽石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