オブジェクトをまとめるオブジェクトについて
2021/08/05更新
この記事コンテキストでは、1個以上のオブジェクトをインスタンス変数に持つオブジェクトを便宜的に集約という表現をする。
集約の分類
下記のように分類すると良い気がしている。
①プログラムがビジネスルールの計算・判断に利用するオブジェクトだけをインスタンス変数に持つオブジェクト
この集約がプログラムの複雑さを解決するキーになる。
例: 作業期間を算出する為、依頼日オブジェクトと納期オブジェクトをインスタンス変数に持つオブジェクト
②人の脳がビジネスルールの判断に利用するオブジェクトだけをインスタンス変数に持つオブジェクト
例: 依頼内容オブジェクトと残り期間オブジェクトをインスタンス変数に持つオブジェクトや一覧で人が識別するのに役立つオブジェクトをインスタンス変数に持つオブジェクト
③上記①、②をインスタンス変数に持つイベントやコトのオブジェクト
このオブジェクトがRepositoryと対応する。
このオブジェクトを識別するオブジェクトとRepositoryの数は一致する。つまり、ある識別子オブジェクト一つに、2つのRepositoryや2つのこのオブジェクトが依存しないようにする。