オブジェクトの「不変条件」を維持する単位

例:User集約にはUser(集約ルート)、UserIdUserNameが存在する。

集約の外部から集約ルート以外のオブジェクトは操作できないようにすることで不変条件を守る

// NG Circle内のMemberを直接操作してしまっている
circle.Members.Add(member);
 
// OK 集約ルートのcircle経由で操作している
circle.Join(user);

circle.Members.Add(member)は、「オブジェクトのインスタンス変数」のメソッドを呼び出しているので、デメテルの法則 に反している