🎯 什麼情境該想到我
當你「想讓呼叫端只依賴介面、不依賴具體實作」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:把介面與其實作放在不同套件/模組,降低相依。
做法要點:
- 在使用端所在(或獨立)的套件定義介面,實作放另一個套件。
- 呼叫端只 import 介面套件,執行期才接上實作(常搭配工廠、外掛或注入)。
- 可讓相依方向反過來:實作依賴介面,而非使用端依賴實作。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 會多出間接層,簡單情況下未必划算。
- 需搭配某種機制在執行期取得實作(外掛、工廠、登錄器等)。
- 只有當跨套件相依真的造成問題時才用,別為分離而分離。
🔗 相關工具
- 外掛 Plugin(用設定在執行期連上實作)
- 登錄器 Registry(提供全域入口取得服務)
- 對應器 Mapper(雙方完全不知情的更強解耦)
- 企業應用架構模式