iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0

「依賴反向原則 (Dependency Inversion Principle, DIP) 告訴我們,最靈活的系統是**『原始碼的依賴關係只涉及抽象不涉及具體』**的那些系統」

「我們想要避免依賴的是系統中容易變化的具體元素」

取自: Clean Architecture (p.75 & p.76)

CH11: 依賴反向原則 (Dependency Inversion Principle, DIP)

  • 特例說明 (例子)
    • Java 中的 String 類別
      • ...
      • 非常穩定
    • 在應用 DIP 時,我們傾向忽略作業系統和平台機制的穩定背景,我們容忍那些具體的依賴關係

穩定的抽象

  • 努力減少介面的變動性...
  • 規則
    1. 不要參考易變的具體類別
    2. 不要從易變的具體類別衍生
    3. 不要改寫具體函式

工廠

  • Design Pattern 說明... (補充)
  • 製圖

補充: 例子

尋找中... 也許 DI 跟 IOC 可以考慮

小結

  • 依賴性 & 控制流相反
  • 違反 DIP 的行為無法完全消除
  • 架構層級
    • 依賴規則

上一篇
Day 20: SOLID 設計原則 — ISP (待改進中... )
下一篇
Day 22: 元件原則 — 內聚性 (待改進中... )
系列文
成為乾淨的開發者吧! Clean Code, Clean Coder, Clean Architecture 導讀之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言