2
に実行せずに可変引数と引数のペアを渡しますフィールドがありますが、通常は20ほどです)。あなたはそれが引数の2種類を伝えるために、引数の配置を使用しての悪いパターンを運ぶ見たようは、もともと私たちは以下のように構築されたオブジェクトを、持っていた悪いパターン
FieldSet set = FieldSet.getNewInstance(
"stringField", "aaa",
"booleanField", Boolean.FALSE,
"intValue", new Integer(123));
:私たちは、このように使用することができます
public static FieldSet getNewInstance(Object... fieldPairs) {
ArrayList<Field> fields = new ArrayList<Field>();
for (int i = 0; i < fieldPairs.length; i += 2) {
fields.add(new Field(fieldPairs[i].toString(), fieldPairs[i + 1]));
}
return new FieldSet(fields.toArray(new Field[fields.size()]));
}
:だから我々は、以下の方法を追加しました。
だから私は
- はつまりはうんざりするほど
Field
オブジェクトを何度も作成する必要が悪いパターンを回避回避、かなり簡潔な形で、ユーザーはFieldSet
を構築することを可能にするという優れたパターンを見つけようとしています :、例えば、以下
上記一つとしてフィールドセットとフィールドの関連部分であります
注:私がここで提供したコードは、質問を最も簡単な形で示すために特別に作成されたものですので、他の非効率的な点に注意しないでください。配列とArrayList
の間で前後に変換 - その問題は実際のコードの一部ではありません)
ありがとう!
1は、それを使用することができますので、誰かが、二つの引数を受け取るメソッド 'addField'を持つBuilderパターンのようなものを発明するならばそれはとてもいいだろう'FieldSet'インスタンスを非常にクリーンな方法で構築します。とても素敵ですね。 – Tom
@Tomこれは本当に良い提案です、なぜそれを回答として投稿しないのですか? –
@AndreyMormysh彼はすでに私の力で邪魔を感じていたので。 ;-) – Andreas