🎯 什麼情境該想到我
當你「厭倦到處寫 null 檢查、想讓『特殊情況』自己有預設行為」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:用一個代表「特殊情況」的子類別取代 null,把該情況的行為封裝進去。
做法要點:
- 為特殊情況(如查無資料、未知客戶)建立子類別,實作與正常物件相同的介面。
- 在方法裡回傳合理的預設行為,讓呼叫端可一視同仁地呼叫,不必先判空。
- Null Object(空物件)是其常見特例,代表「什麼都不做/中性值」。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 若各處對「特殊情況」的期望行為不一致,硬塞單一預設反而會藏 bug。
- 只有零星一兩處判空時,直接判斷可能更清楚,不需引入子類別。
- 要小心別讓特例默默吞掉真正該報錯的情況。
🔗 相關工具
- 層超型 Layer Supertype(特例常繼承自該層的共同父類別)
- 值物件 Value Object(特例值可設計為值物件)
- 企業應用架構模式