2

GoF book では、ビルダー パターンの製品クラスは必ずしも基本クラスから継承する必要はないと述べています。具象ビルダー クラスは、同じ抽象的な構築手順を共有するまったく異なる製品を生成する場合があります。

ビルダー パターンを使用するクライアントは、具体的なビルダー クラスをインスタンス化し、オブジェクトを Director オブジェクトに関連付ける必要があります。ディレクターはビルダーを使用してオブジェクトを構築し、最終的に完全なオブジェクトを返します。

私の質問は、製品クラスが同じ基本クラスを共有しない場合、ディレクターはどのように設計されるのでしょうか? C# では、これはジェネリックを使用して簡単に実装できますが、デザイン パターンは言語機能に依存しません。具体的な製品のタイプごとに個別のメソッドを定義することは、ディレクターを製品クラスと密接に結合し、新しい製品クラスにはディレクター クラスの変更が必要になるため、良い考えとは思えません。

考えを教えてください。

4

1 に答える 1

2

パターンは製品の性質を気にしないので、さまざまなタイプの製品を生成するビルダーがある場合は、オブジェクトを返すことができます。結果はもはや静的に型付けされていませんが、これは消費者の問題です。消費者は、任意の製品を生成できるビルダーを使用するようディレクターに要求したからです。

于 2012-10-09T18:22:37.000 に答える