🎯 什麼情境該想到我

當你發現「這個東西就算屬性全變了,它還是同一個」——例如同一位客戶改了名字和地址仍是同一人、一筆訂單從下單到出貨一路都是那一筆——需要一個貫穿生命週期的唯一身分來追蹤時。

⚙️ 怎麼用(步驟 / 公式)

意圖:用「唯一識別(identity)」而非屬性值來定義一個有連續生命週期的物件。

  1. 判斷這個概念是否需要被「持續追蹤同一個」:若是,它就是實體。
  2. 給它一個穩定、唯一的識別(ID),且該 ID 在整個生命週期內不變。
  3. 相等性(equals)只比對 identity,不比對其他屬性——ID 相同即同一個實體。
  4. 把它的狀態變化與行為封裝在自己內部,維持自身不變式(invariant)。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 不是每個物件都該是實體:若你只在乎「值是什麼」而不在乎「是不是同一個」,用值物件更簡單。
  • 濫用實體會讓系統到處是可變狀態與 ID,增加追蹤成本。
  • ID 的產生策略(資料庫序號、UUID、自然鍵)要及早決定,避免識別不穩。

🔗 相關工具