エンティティの識別子
エンティティ オブジェクトの他のフィールドに変更があっても、アイデンティティは安定する必要がある エンティティをモデリングする際には、注文 ID や顧客 ID のような一意の識別子を与える必要がある e.g.
code:fsharp
type ContactId = ContactId of int
type Contact = {
ContactId : ContactId
PhoneNumber : ...
EmailAddress : ...
}
PhoneNumber や EmailAddress が変更されても、ContactId はそのままに
実世界のドメイン自体が提供するケース
紙の注文書や請求書には、必ず参照番号が書かれている
人工的な識別子を作成するケース
UUID やデータベースの自動インクリメンタル、ID 生成サービス