私のプロジェクトの1つでは、特定の問題を解決するためにFactoryデザインパターンを実装する必要があります。工場設計パターンとダイヤモンドOOPの問題
私は1つの親インターフェイスと2つの子インターフェイスを持っています。次の段階では、与えられた入力に基づいて特定のクラスのインスタンスを返すファクトリを作成する必要があります。
私の問題とサンプルダイアグラムについても説明している下のサンプルコードをご覧ください。
サンプルダイアグラム
サンプルコード
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