API 設計の一部として、複雑な構成クラスを設計しています。構成クラスは大まかに次のようになります.. (ジェネリック/アクセス修飾子などは無視しました)
class Configuration {
One obj1;
Two obj2;
}
class One {
List<Double> values;
}
class Two {
double value;
Map<String, Double> data;
}
これは私が達成したいことです:
- ユーザーが初めてこの構成クラスを簡単に作成してサーバーに送信できるようにしたい。
- 次に、このクラスの任意の部分を変更し、更新された構成をサーバーに送信できます。
使用および回避する設計パターンは?
このクラスを Immutable にしてビルダー パターンを使用する方がよいでしょうか。または、構成クラスであらゆる種類の変更メソッドを提供するだけで、更新ごとに新しい構成クラスを作成することなく、同じ構成クラスを (すべてのレベルで) インプレースで変更できます。Builder パターンは Immutable クラスにのみ適していると思います。
質問:
- このタイプのシナリオで Builder パターンを利用する方法はありますか?
- それとも、上記のように Configuration クラスにミューテーター メソッドを提供する方がよいでしょうか?
- または、他に利用可能なより良いパターンはありますか?