唯一不變的就是變化本身。 我們經常講的系統、子系統、模塊、組件、類、函數就是從邏輯上將軟體一步步分解為更細微的部分,即邏輯單元, 分而治之, 複雜問題拆解為若幹簡單問題, 逐個解決。 邏輯單元內部、外部的交互會產生依賴,從而產生了內聚、耦合概念。內聚主要描述邏輯單元內部,耦合主要描述邏輯單元之間的關 ...
唯一不變的就是變化本身。
我們經常講的系統、子系統、模塊、組件、類、函數就是從邏輯上將軟體一步步分解為更細微的部分,即邏輯單元, 分而治之, 複雜問題拆解為若幹簡單問題, 逐個解決。
邏輯單元內部、外部的交互會產生依賴,從而產生了內聚、耦合概念。內聚主要描述邏輯單元內部,耦合主要描述邏輯單元之間的關係。
我們經常講的高內聚,低耦合,如何做到,做到的標準是什麼?
這就是開發、設計、架構的五大原則所體現出的價值,最終達到高內聚,低耦合的軟體目標。
耦合
邏輯單元之間存在依賴, 導致改動可能會互相影響, 關係越緊密, 耦合越強,邏輯單元獨立性越差。
比如模塊A直接操作了模塊B中數據, 則視為強耦合, 若A只是通過數據與模塊B交互, 則視為弱耦合。
內聚
邏輯單元內部的元素, 關聯性越強, 則內聚越高, 邏輯單元單一性更強。 一個邏輯單元應當儘可能獨立完成某個功能。
比如有各種場景需要被引入到當前模塊, 代碼質量將變得非常脆弱, 這種情況建議拆分為多個模塊。
高內聚、低耦合
內聚性,又稱塊內聯繫。指邏輯單元的功能強度的度量,即一個邏輯單元內部各個元素彼此結合的緊密程度的度量。
耦合性,又稱塊間聯繫。指邏輯單元相互聯繫緊密程度的一種度量。
比如電腦USB口。可以插入USB口工作的設備和電腦都是低耦合性,電腦不依賴於外部任何外部USB設備,只要你符合USB規範,插上就可以用。USB規範就像一個抽象類,所有外部設備必須實現抽象類,確保能被正確調用。
設計模式、SOLID原則等都是為了更好的做到高內聚、低耦合。
SOLID原則
- S:單一職責原則 (Single Responsibility Principle)
- O:開閉原則 (Open/Closed Principle)
- L:里氏替換原則 (Liskov Substitution Principle)
- I:介面隔離原則 (Interface Segregation Principle)
- D:依賴倒置原則 (Dependency Inversion Principle)
上述是面向對象編程的關鍵原則。諸如此類的設計原則能夠幫助開發人員構建更易於維護、擴展的系統。
詳細講解請閱讀軟體開發、設計、架構的五大原則