mizoguche.info
集約 - エリック・エヴァンスのDDD読んだメモ

複雑な関連を持つモデルに変更の一貫性を保証するため、集約という境界を設ける。

TL; DR

  • 集約のルートエンティティは不変条件をチェックする最終的な責任を負う
  • 集約の境界外にあるオブジェクトは、境界内部への参照を保持することができない

集約

  • 集約のルートエンティティは、グローバルな同一性を持ち、不変条件をチェックする最終的な責務を負う
  • ルートエンティティはグローバルな同一性を持つ
  • 教会内部のエンティティは、集約内でのみ一位となるローカルな同一性を持つ
  • 集約の境界外にあるオブジェクトは、ルートエンティティを除き、境界内部への参照を保持することができない
  • ルートエンティティは内部のエンティティへの参照を他のオブジェクトに渡せるが、受け取ったオブジェクトは参照を一時的に使用することができるだけで、その参照を保持してはならない
  • ルートは値オブジェクトのコピーを別のオブジェクトに渡すこともあるが、その場合はコピーがどうなってもよい
    • 渡されるのは単なる値で、集約とは何の関連もなくなるからである
  • 集約内部のオブジェクトは、他の集約ルートへの参照を保持することができる
  • 削除の操作は、集約境界の内部に存在するあらゆるものを一度に削除しなければならない
  • 集約境界の内部に存在するオブジェクトに対する変更がコミットされるときには、集約全体の不変条件がすべて満たされていなければならない
このエントリーをはてなブックマークに追加