高內聚低耦合的理解

2021-10-23 10:35:26 字數 997 閱讀 8007

應屆程式設計師,幾年的辯證唯物主義哲學愛好者談談對高內聚、低耦合的理解。

理解乙個事物,需要從兩個方面去理解。

乙個是「世界觀」,乙個是「價值觀」。

世界觀,即某個事物包含了什麼客觀規律;價值觀,即事物對人有什麼價值。

先談價值觀,對於萬事萬物,它們有一些普通而又特殊的屬性。普通在於從科學的角度,它們是必然、的固有的,從這個角度它們是一樣的。而有乙個特殊的屬性,那就是「生存屬性」。世界萬物是發展變化的,從低階到高階(社會形態、科學技術等),從不穩定到穩定(物質形態)。世界萬物的發展是有一定方向的,事物具有的一些普通而又特殊的屬性讓其存在下來。

對於軟體系統,這種屬性就是,滿足人類的需求,讓其能「存在下來」的屬性。那就是人類對軟體系統的需求,功能強大、易於擴充套件(修改容易)、幫助減少勞動。

「世界觀」方面,低內聚、高耦合是客觀在很多方面能滿足人類對軟體的上述需求的。

高內聚:系統的架構的完整盡可能少的依賴外部資源。

目的:單個系統的維護、執行等盡可能低的影響、依賴於外部其它系統。

低耦合:系統內部各個模組間的依賴關係盡可能的低。

目的:各個模組的維護的影響的範圍小,整個系統的靈活性提高(系統的改變,即各個模組的增、刪、改容易),降低系統的維護成本,能盡可能的提高系統的多功能性。

原因:系統變更成本低,具備實現多功能的條件。

簡單來說就是能滿足人類的「貪」、「懶」的需求,又滿足客觀規律。

舉個mybatis等資料庫操作封裝的技術的例子。

原始的方式,sql語句模組(或者說系統)對於其它部分的依賴很大,具體業務決定了它的結構,換個業務它就得改變結構,不再可用。

簡單來說就是,對於整個系統,sql語句模組和業務模組兩個內部子模組依賴度過高,不滿足系統內部子模組的低耦合。

對於sql語句模組來說,他不是高內聚的,它的架構依賴於外部的業務邏輯。

如何理解高內聚低耦合

高內聚就是說相關度比較高的部分盡可能的集中,不要分散 例如內聚性要求強的話就像windows32中系統提供的api,裡面的函式太多了,都放在乙個dll中,那麼每個函式完成乙個功能。這樣強大的功能,會比較複雜,所以並不是完全的高內聚越高越好,還是要看實際的需要。當然維護起來也不是特別的方便。低耦合就是...

如何理解「高內聚低耦合」

起因 模組獨立性指每個模組只完成系統要求的獨立子功能,並且與其他模組的聯絡最少且介面簡單,兩個定性的度量標準 耦合性和內聚性。耦合性也稱塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差。模組間耦合高低取決於模組間介面的複雜性 呼叫的...

高內聚,低耦合

大家都在說高內聚,低耦合。問題是什麼是高內聚?什麼是低耦合?那它們的作用是什麼?先來談談什麼是耦合,耦合就是不同模組之間粘稠的程度。耦合度高證明你的模組之間粘稠,不好剝離模組功能。造成後續修改難度加大,所謂 動一發而牽全身 當你的 粘稠在一起的時候,就代表你的 需要重寫了。那麼避免這些個事情的發生,...