静的メソッドを使用したFactoryの実装を見てきました。このようなもの:
public class MyFactory {
public static Product1 createProduct1() {}
public static Product2 createProduct2() {}
}
p1 = MyFactory.createProduct1();
p2 = MyFactory.createProduct2();
それをAbstractFactoryと呼べるかどうかはわかりませんが、それは問題ではありません。Abstract Factoryについて私が理解しているのは、製品ファミリを簡単に変更できる柔軟性があるということです。
Factory factory = new MyFactory(); // might be a global or Singleton
p1 = factory.createProduct1();
p2 = factory.createProduct2();
MyFactory
そして、からに変更したい場合は、変更するのYourFactory
に必要な行は1行だけです。実行時に変更することもできます。しかし、それらが静的メソッドとして実装されている場合は可能ですか?静的ファクトリへのすべての呼び出しを変更する必要があります。また、実行時に決定する場合は、すべての場所でif-elseチェックを使用する必要があります。
p1 = YourFactory.createProduct1();
p2 = YourFactory.createProduct2();
では、静的メソッドを使用してファクトリを実装することの利点は何ですか?主な柔軟性を失っていませんか?私はここで何を逃しましたか?
特定の言語は想定されていないことに注意してください。どんな助けでも大歓迎です。