Entity
Entityとは
Entityは、属性や状態が変わっても、識別子によって同じ対象として追跡するドメインモデルの要素です。値そのものではなく、「どの対象か」が重要になります。
Entityはいつ作る?
推奨
属性ではなく同一性で追跡し、時間とともに状態が変わる対象をEntityにする。
なぜ
値が変わっても同じ対象として扱う必要がある場合、識別子とライフサイクルをドメインモデルに明示する必要があります。
判断基準
- 履歴や状態遷移を追う
- 同じ属性でも別物として区別する
- 業務上の識別子が会話に現れる
BAD
表示用の都道府県一覧の各項目に、将来使うかもしれないという理由だけでEntity IDを付ける。
GOOD
注文は配送先が変わっても同じ注文IDの注文として追跡する。
図:AGGREGATEの変更経路
外部のユースケース
変更を依頼する
AGGREGATE BOUNDARY
Aggregate Root
不変条件を守る入口
Entity
同一性で追跡する
Value Object
値で等価性を決める