2

約 6 つのパラメーターを受け取るオブジェクトのコンストラクターがあるとしますが、2 つ以上のパラメーターが関連しているとします。次に例を示します。

LoanProduct(CurrencySum maxSum, CurrencySum minSum, Interest interest, etc)

CurrencySumは、通貨を表すBigDecimalEnumの 2 つのオブジェクトのラッパーです。

Interestは、FixedInterestVariableInterestの 2 つのサブクラスを持つインターフェイスです。

VariableInterestは、固定値を表すBigDecimalと、対象の可変ビットであるVarIndexオブジェクトをラップします。VarIndex は、基本的に libor 1m、libor 2m などです (VariableInterest = BigDecimal fixedValue + VarIndex variableValue)。

ここで少し気になるのは、LoanProductが作成されるときに、 maxSumminSumが同じCurrencyであるかどうか、VariableInterestがそのCurrencyに対応するVarIndexを保持しているかどうかをコンストラクターでチェックインする必要があることです。 libor に VarIndex が設定されている場合、それは euribor でなければなりません。

このすべてのチェックなしで LoanProduct を構築するエレガントな方法はありますか? ビルダーパターンを使用してビルダーですべてのチェックを行うことを検討していますが、それでもいようです。

4

1 に答える 1

1

私の意見ではビルダーパターン。効果的なJavaには、これに関する優れた章があります。

または、これらのパラメータの一部を独自のオブジェクトにカプセル化して、数を減らすことができます

于 2012-09-08T08:27:15.497 に答える