0

インスタンスを初期化するには、デフォルトのコンストラクターといくつかのセッター、または長いパラメーター リストを持つコンストラクターのいずれかを使用できます。後者の方法では、オブジェクトが生成された後もオブジェクトの状態は変更されない場合がありますが (setter がないため)、長いパラメーター リストは見苦しく、エラーが発生しやすくなります。前者の方法では、長いパラメーター リストは回避されますが、オブジェクトの状態は、オブジェクトが完全に作成された後で、setter によって誤って変更される可能性があります。

オブジェクトの作成後に内部フィールドが変更されないオブジェクトが必要ですが、長いパラメーター リストは好きではありません。それを行うためのベストプラクティスは何ですか?

4

2 に答える 2

9

Builder パターンを使用します。

Foo foo = new FooBuilder().setBar(...).setBaz(...).build();
于 2011-03-30T12:30:44.347 に答える
2

長いパラメーター リストは、クラスをより小さなクラスにリファクタリングする必要があることを意味する可能性があります (ただし、そうである必要はありません)。

于 2011-03-30T12:41:54.650 に答える