0%

Design Pattern — 內聚力與耦合力

內聚力 Cohesion

  • 在一個”模組”內完成”一件工作”的度量指標

高內聚力

  • 一次專注做一件事情
  • 內聚力高,意味著該模組可以獨立運作,也意味著更容易重複利用
  • ex: 一個class只負責一件事情(例如寫Log)

低內聚

  • 在一個”模組”內完成多件事情
  • 內聚力低,意味著該模組會造成難以維護/測試/重用/理解
  • ex: 所有功能寫在一個class內或一個method有5000行程式碼

較佳的實務設計

  • 在設計模組的時候,要盡量設計出 高內聚 的程式碼
  • 若有一個模組完成太多項工作,建議拆分成多個不同的類別
  • 實現 SRP 就是提高內聚力的一種表現

耦合力 Coupling

  • 模組跟模組之間的關聯強度或是依賴程度
  • ex: 在B類別內,直接建立了A物件實體,那就會建立類別A與類別B之間的”耦合關係”

高耦合

  • 意味著當改了A模組時,相關聯的B模組就容易被影響(改A壞B)

低耦合

  • 當修改模組時,越少模組被引響,那意味著耦合力較低

較佳的實務設計

  • 在設計模組的時候,要盡量設計出 低耦合力 的程式碼
  • 實現 DIP 就是實現降低耦合力的一個原則

參考至: 保哥的(打造堅固耐用的 C# 程式碼) 大推

文章若有錯誤或想交流,還不吝嗇給予指教哦