ファクトリメソッドとは正確には何ですか?dllでどのように実装できますか?
2 に答える
ファクトリの基本的な考え方は、関数が既知の基本クラスから派生したヒープに割り当てられたオブジェクトを返すことです。したがって、あなたの状況では、おそらくメインアプリケーションにdllのファクトリを呼び出し、未知のダイナミックタイプと実装のオブジェクトを取得するコードがありますが、それが特定の基本クラスのAPI要件を満たしていることがわかります。次に、そのインターフェイスを介してオブジェクトを使用し、おそらく仮想デストラクタを介してオブジェクトを削除します。実際の派生クラスの選択方法に応じてファクトリメソッドにはいくつかのタイプがありますが、通常は、関数、IOストリーム、またはXML構造などへの入力を調べて、適切なタイプを計算します。ファクトリがdll内にあるかどうかは、ここのモデル全体に実際には何の違いもありません。
詳細については、http://en.wikipedia.org/wiki/Factory_method_patternを参照してください。
ファクトリメソッドは作成パターンです。このパターンは、オブジェクトを作成するためのインターフェイスをモデル化するのに役立ちます。このインターフェイスは、作成時に、そのサブクラスにインスタンス化するクラスを決定させることができます。オブジェクトの「製造」を担当するため、これをファクトリパターンと呼びます。関連するクラスのグループから適切なオブジェクトを作成することにより、適切なサブクラスをインスタンス化するのに役立ちます。ファクトリパターンは、アプリケーション固有のクラスをコードにバインドする必要をなくすことにより、緩い結合を促進します。
ファクトリパターンは、「オブジェクトを作成するためのインターフェイスを定義しますが、インスタンス化するクラスをサブクラスに決定させます。ファクトリメソッドを使用すると、クラスはサブクラスへのインスタンス化を延期できます」したがって、「ファクトリメソッドを使用すると、クラスはサブクラスへのインスタンス化を延期できます」 。
コンポーネントオブジェクトモデル(COM)アプリケーションでのファクトリパターンの一般的な使用法の1つについては、これを参照してください。