私は現在、工場の設計パターンについていくつかの調査を行っており、それぞれについての私の理解を簡単に説明しています。それらのいずれかが正しくない場合は、私を修正してください。
1) ファクトリ - シンプルで、実際には公式の設計パターンではありません。通常は、抽象型のどのサブクラスを返すかを決定するパラメーターを受け入れる 1 つ以上のメソッド (静的な場合もある) を持つ 1 つのクラスです。
2) ファクトリ メソッド - 正式にはパターンであり、抽象ファクトリ クラスを使用します。目的の戻り型の製品ごとに、関連付けられたファクトリ クラスを作成し、必要なメソッドを実装またはオーバーライドします。クライアント コードでは、変数は抽象化されたファクトリとして宣言されていますが、具体的な実装でインスタンス化されています。
3) 抽象ファクトリ - 相互に関連または依存しているさまざまなメソッドを介して、複数のタイプのオブジェクトを返すパターン。
私の質問は、共有メソッドでファクトリ (公式にはパターンではない) を使用してきたことです。ただし、ファクトリ メソッドを選択してこれを使用することを検討していますが、製品を作成するために使用する抽象化されたファクトリ クラスのサブクラスをどのように決定するかが頭に浮かびません。私がこれまでに理解していることから、抽象ファクトリ クラスとして宣言された変数に具体的なクラスを割り当てるために、まだnewキーワードを使用しています。
例えば:
Dim factory1 As IFactory = New ConcreteFactory1
Dim factory2 As IFactory = New ConcreteFactory2
たとえば、データベース レコードに基づいてどの IFactory を返すかを動的に決定したい場合、どうすればよいでしょうか? Factory Method パターンを気にせずに、Factory パターンを使用してコードを残したほうがよいでしょうか? クライアント コードでselect caseまたはifステートメントを実行することは避けたいと考えています。Factory Method パターンを Factory パターンにラップできますか?
私が理にかなっていることを願っています