6

コンストラクター自体の中でさまざまなビルド手順を実行できないのはなぜですか。ビルドステップが引数をとる場合、それらをコンストラクターに引数として提供し、コンストラクター内で使用してオブジェクトを作成できないのはなぜですか。

私の知る限り、ビルダーパターンでは、特定のオブジェクトを作成するクライアント。それでは、コンストラクターの代わりにビルダーを使用して、作成されるクラスのオブジェクトに引数を指定する利点は何ですか?

4

1 に答える 1

5

おー!わかった。ウィキペディアの例を見ていて、Builder が役立つ理由に気づきました。コンストラクターに渡す引数が非常に複雑であり、コンストラクターを直接呼び出してオブジェクトを取得できないため、クライアントがコンストラクターに渡す引数がわからない場合に役立ちます。その結果、彼は、コンストラクターに渡す引数を知っているコンクリートビルダーに助けを求め、オブジェクトを作成します。

基本的に、オブジェクトが作成される Class のコンストラクターに引数を渡すことがほとんどの場合、クライアントがクライアントである場合、Builder はあまり役に立ちません。プロトタイプを使用する方が良いかもしれません。一方、そのクラスのコンストラクターに引数を渡す (またはセッターを呼び出す) ことによってクラスから作成できる特定のオブジェクトの小さな有限セットがあり、それらが頻繁に使用されるものである場合は、この引数を Builder クラスに渡すことをカプセル化し、それらを使用してオブジェクトを作成します。

于 2010-09-04T15:37:42.807 に答える