🎯 什麼情境該想到我
當高層業務邏輯直接依賴低層細節(DB、第三方),導致底層一改就害到上層,或你想做「可插拔」架構時。
⚙️ 怎麼用
- 依賴反轉(DIP):高層與低層都依賴抽象,別讓高層依賴具體低層。
- 好萊塢原則:「別打電話給我們,我們會打給你。」——由高層/框架決定何時呼叫低層元件,低層只實作被回呼的介面,不主動反向依賴高層。
- 效果:控制流與依賴方向解耦,低層變成可替換的外掛(框架、DI 容器都靠這個)。
🧪 我實際套用的紀錄
- 2026-07-14:(待填)
⚠️ 注意
- 抽象要放在「高層擁有、低層實作」的位置,別讓抽象反而綁死在低層。
🔗 相關工具
- 工具-針對介面編程 —— 依賴反轉的基本工具,抽象要先存在才有反轉可言
- 工具-開閉原則 —— 依賴反轉之後自然得到的效果:加新實作不必改高層邏輯
- 工具-打破依賴以便測試 —— 最實際的驗收方式:能不能單獨測試,就是依賴方向對不對的檢查器