🎯 什麼情境該想到我

當建立一個物件或聚合要組裝很多零件、套很多規則,複雜到塞進建構子會讓呼叫端知道太多內部細節時——就把這段建立邏輯抽出來交給工廠。

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

意圖:封裝複雜物件/聚合的建立邏輯,確保一建立出來就處於一致且完整的狀態。

  1. 把複雜的組裝、預設值、關聯建立集中到工廠(方法、獨立類別或聚合根上的建立方法)。
  2. 讓工廠在回傳前就滿足所有不變式——不允許產出半成品或不一致的物件。
  3. 呼叫端只給必要的原料,不需了解內部如何拼裝。
  4. 建立整個聚合時,工廠負責一次產出根與其內部物件的一致整體。

🧪 我實際套用的紀錄

  • (待填)

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

  • 建立很單純時不需要工廠,直接用建構子即可,別過度設計。
  • 工廠負責「建立新物件」,儲存庫(DDD)負責「取回既有物件」,兩者職責不要混。
  • 若建立規則本身是重要領域概念,考慮讓它顯性成為領域的一部分。

🔗 相關工具