0

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 クラスにミューテーター メソッドを提供する方がよいでしょうか?
  • または、他に利用可能なより良いパターンはありますか?
4

1 に答える 1