私は(C#の場合)ビルダーパターンの良い例えば見ているが、私はビルダーパターンを理解していないので、どちらかを見つけることができないか、私がいた何かをしようとしています意図していない。たとえば、車の部品を作成するための抽象的な自動車と抽象的なビルダーメソッドがある場合、私は自分の選択肢のすべてをDirectorに送り、必要な部分を構築してから自分の自動車を作ることができるはずです。どの車、トラック、セミなどが生産されたかに関わらず、私はまったく同じように「駆動」できるはずです。デザインパターン:ビルダー
最初の問題は、具体的な部分のハードコードプロパティ値のほとんどの例ですが、実際にはデータベースから来ていると思います。私はアイデアがディレクター(データソースから)に自分の選択肢を送り、自分のデータに基づいてカスタマイズされた製品をビルダーに作成させることだと思いました。
第2の問題は、実際に部品を作成して、製品に割り当て、文字列を渡すのではなく実際に強く型付けされた製品部品を割り当てることです。
たとえば、私は、ラベル、入力セクション、検証などを含むBuilderの製造フォームフィールドを作成することで、フォームを作成したいと思います。この方法でORMからオブジェクトを読み取ることができますオブジェクトのメタデータを取り出し、これをBuilderに渡し、新しく作成したユーザーコントロールの結果をWebフォームに追加します。
しかし、すべてのBuilderの例では、メインコードからビルダーに選択肢を渡してカスタマイズされた製品を追い出す代わりに、ハードコードされたデータしかありません。すべてが大きな静的事例であるようです。たとえば、それぞれ10個の選択肢を持つ3つのパラメータがある場合、30個の具体的なビルダーメソッドを作成する必要はなく、製品に必要なプロパティを作成するのに十分なものを作成したいだけです。
メインコードにのみDirectorが存在するようにしたいと思っています。パターン内のcase文を使用する代わりに、ポリモーフィズムやメソッドのオーバーロードに似た、どのような具体的なビルダーメソッドを呼び出すかを自動的に判断する方法があります(非常に悪い例ですが)。 (新しい製品タイプを追加するたびに、既存のディレクターを変更する必要がありますが、これは悪いことです)。
おそらく、ビルダーパターンに欠けているのは、最後にオブジェクトが破棄されないということです。パターンをアンスタンスしている場合は、後でこれを追加することをお勧めします。 – Tobias
これらの記事:
[パターンの説明](http://sourcemaking.com/design_patterns/builder)
[c#実装サンプル](http://sourcemaking.com/design_patterns/builder/c%2523)
希望する助けてください。 – 0x49D1