0

今月のフレーバーが、switch ステートメントと列挙型を使用して作成する具体的なクラス インスタンスを決定しているように見えるプロジェクトに取り組んでいます。

それらはすべて同じインターフェースを実装しているが、インスタンスの作成時に異なるオブジェクトパラメーターを必要とすることを考慮して、オブジェクトの作成を検討できる代替設計パターンはありますか?

たとえば、現在のコードは .

SomeInterface concreteInstance;
Switch() {
  case A :
  {
     concreteInstance = new ConcreteAInstance(param1, param2);
  }

  case b : 
  {
    concreteInstance = new ConcreteBInstance(param1, param2, param3);
  }
  case c :
  {
    concreteInstance = new ConcreteCInstance(param1);
  }
}
4

1 に答える 1

3

Abstract Factory パターンを見てみましょう。

https://en.wikipedia.org/wiki/Abstract_factory_pattern

ところで。「ファクトリーパターン」はありません。4 つのギャングは、Abstract Factory と Factory Method という 2 つのフレーバーを定義します。

于 2016-11-18T13:08:41.507 に答える