4

最近、要求されたパラメーターの数に関するクラスを作成しようとすると、私は引き裂かれました。

非常に単純なコンストラクターの例:

Burger(bun, meat, cheese, lettuce)
    this.bun = bun
    this.meat = meat
    ...

Burger(grocery)
    this.bun = grocery.bun
    this.meat = grocery.meat
    ...

どちらの方法も有効なアプローチです。最初の方法は、ハンバーガーに何が入っているかを正確に示し、引数をより一般的なクラスに分解するため、結合が少なくなります。オブジェクト グラフが単純であるため、一般的にテストが簡単だと思います。

しかし、2 番目の方法ははるかに単純でクリーンであり、おそらくハンバーガーにはより多くの材料が必要になる可能性があるため、最初の方法の議論は非常に膨らむ可能性があります。

このような状況でどの方法が推奨されるか知りたいです。よりクリーンでより結合されたコード、またはより冗長な方法を選択してください。

4

1 に答える 1

5

4 つ以上のパラメーターをメソッドまたはコンストラクターに渡すことは、良い考えでも良い設計でもありません。

Joshua Bloch ( Effective Java ) がこの状況にBuilder パターンを推奨したことを覚えています(項目 2)。

項目 2 : コンストラクターのパラメーターが多い場合はビルダーを検討する

于 2011-01-07T06:29:55.627 に答える