Builder パターン(C#) の良い例を探しましたが、Builder パターンを理解していないか、意図していないことをしようとしているために、見つけることができません。たとえば、抽象自動車と自動車部品を作成する抽象ビルダー メソッドがある場合、選択した 30 個すべてをディレクターに送信し、必要な部品を作成してから自動車を作成する必要があります。どの車、トラック、セミなどを製造しても、まったく同じように「運転」できるはずです。
最初の問題は、具体的な部分にハードコードされたプロパティ値のほとんどの例です。これは、データベースから取得する必要があると思います。私のアイデアは、(データ ソースから) ディレクターに私の選択を送信し、ビルダーに私のデータに基づいてカスタマイズされた製品を作成させることだと思いました。
2番目の問題は、ビルダーメソッドで実際にパーツを作成してから、文字列を渡すのではなく、実際に強く型付けされた製品パーツを製品に割り当てることです。
たとえば、ビルダーにラベル、入力セクション、検証などを含むフォームフィールドを作成させることで、オンザフライでフォームを作成したいと考えています。このようにして、ORM からオブジェクトを読み取り、オブジェクトのメタデータをチェックアウトできます。 、これを Builder に渡し、新しく作成したユーザー コントロールの結果を Web フォームに追加します。
ただし、私が見つけたすべての Builder の例には、メイン コードから Builder に選択肢を渡してカスタマイズされた製品を追い出すのではなく、ハード コーディングされたデータしかありません。すべてが大きな静的ケースステートメントのようです。たとえば、それぞれ 10 の選択肢を持つ 3 つのパラメーターがある場合、30 の具体的な Builder メソッドを構築したくありません。製品に必要なプロパティを作成するのに十分なだけ作成したいのですが、それは 3 つだけかもしれません。
Director はメイン コードだけに存在させたいと思っています。パターン内で case ステートメントを使用する代わりに、ポリモーフィズムやメソッドのオーバーロード (非常に悪い例ですが) と同様に、どの具体的なビルダー メソッドを呼び出すかを自動的に決定する方法が必要です。(新しい製品タイプを追加する必要があるたびに、既存のディレクターを変更する必要がありますが、これは悪いことです)。