內聚力 Cohesion
- 在一個”模組”內完成”一件工作”的度量指標
高內聚力
- 一次專注做一件事情
- 內聚力高,意味著該模組可以獨立運作,也意味著更容易重複利用
- ex: 一個class只負責一件事情(例如寫Log)
低內聚
- 在一個”模組”內完成多件事情
- 內聚力低,意味著該模組會造成難以維護/測試/重用/理解
- ex: 所有功能寫在一個class內或一個method有5000行程式碼
較佳的實務設計
- 在設計模組的時候,要盡量設計出 高內聚 的程式碼
- 若有一個模組完成太多項工作,建議拆分成多個不同的類別
- 實現 SRP 就是提高內聚力的一種表現
耦合力 Coupling
- 模組跟模組之間的關聯強度或是依賴程度
- ex: 在B類別內,直接建立了A物件實體,那就會建立類別A與類別B之間的”耦合關係”
高耦合
- 意味著當改了A模組時,相關聯的B模組就容易被影響(改A壞B)
低耦合
- 當修改模組時,越少模組被引響,那意味著耦合力較低
較佳的實務設計
- 在設計模組的時候,要盡量設計出 低耦合力 的程式碼
- 實現 DIP 就是實現降低耦合力的一個原則
參考至: 保哥的(打造堅固耐用的 C# 程式碼) 大推
文章若有錯誤或想交流,還不吝嗇給予指教哦