ファクトリ パターンを理解しようとしています。多くの実装がある場合、ファクトリ パターンには多数の if else または switch ケースがあります。また、新しい実装を導入するたびに、工場コードを変更する必要があります
以下の例のように、犬のアヒルが明日のように Pet インターフェースを実装していると仮定すると、多くの動物がペット インターフェースを実装している場合、私の工場は多くの if else if コードまたはスイッチ ケースで長く悩まされます。より動的なアプローチを導入してこれを解決する方法はありますか?
package com.javapapers.sample.designpattern.factorymethod;
//Factory method pattern implementation that instantiates objects based on logic
public class PetFactory {
public Pet getPet(String petType) {
Pet pet = null;
// based on logic factory instantiates an object
if ("bark".equals(petType))
pet = new Dog();
else if ("quack".equals(petType))
pet = new Duck();
return pet;
}
動物が増えたら
if ("bark".equals(petType))
pet = new Dog();
else if ("quack".equals(petType))
pet = new Duck();
else if ("mno".equals(petType))
pet = new MNO();
else if ("jkl".equals(petType))
pet = new JKL();
else if ("ghi".equals(petType))
pet = new GHI();
else if ("def".equals(petType))
pet = new DEF();
......
else if ("abc".equals(petType))
pet = new ABC();
return pet