🎯 什麼情境該想到我
當你在設計領域模型的結構,猶豫「這東西該有身分嗎、一致性邊界該畫在哪」時。
⚙️ 怎麼用(三個建構區塊)
- Entity(實體):有唯一身分、生命週期中即使屬性變了仍是「同一個」(如:一個訂單)。
- Value Object(值物件):沒有身分,只看值是否相等、不可變(如:金額、地址)。優先用值物件,簡單又安全。
- Aggregate(聚合):一組相關物件的一致性邊界,有一個 Aggregate Root 當唯一入口;外部只能透過 root 改動內部,交易一次只改一個聚合。
🧪 我實際套用的紀錄
- 2026-07-14:(待填)
⚠️ 注意
- 聚合別設太大(一致性成本高);一次交易一個聚合,跨聚合用最終一致性(見 工具-Transactional-Outbox-Pattern)。