1. 程式人生 > >低耦合, 高內聚的含義是什麼

低耦合, 高內聚的含義是什麼

高內聚,低耦合, 是軟體工程中的概念, 是判斷設計好壞的標準, 主要是面向物件的設計, 主要是看類的內聚性是否高, 耦合度是否低

高內聚

內聚就是一個模組內各個元素彼此結合的緊密程度, 高內聚就是一個模組內各個元素彼此結合的緊密程度高. 所謂高內聚實質一個軟體模組是由相關性很強的程式碼組成, 只負責一項任務, 也就是常說的單一責任原則.

低耦合

耦合: 一個軟體結構內不同模組之間互連程度的度量(耦合性也叫塊間聯絡,指軟體系統模組中各模組間相互聯絡緊密程度的一種度量. 模組之間聯絡越緊密, 其耦合性就越強, 模組的獨立性則越差, 模組間耦合的高低取決於模組間介面的複雜性, 呼叫的方式以及傳遞的資訊.)對於低耦合, 粗淺的理解是: 一個完整的系統, 模組與模組之間, 儘可能的使其獨立存在, 也就是說, 讓每個模組, 儘可能的獨立完成某個特定的子功能. 模組與模組之間的介面, 儘量的少而簡單. 如果某兩個模組間的關係比較複雜的話, 最好首先考慮進一步的模組劃分. 這樣有利於修改和組合.

為什麼要追求高內聚和低耦合

  軟體架構設計的目的簡單說就是在保持軟體內在聯絡的前提下,分解軟體系統,降低軟體系統開發的複雜性,而分解軟體系統的基本方法無外乎分層和分割。但是在保持軟體內在聯絡的前提下,如何分層分割系統,分層分割到什麼樣的粒度,並不是一件容易的事,這方面有各種各樣的分解方法,比如:關注點分離,面向方面,面向物件,面向介面,面向服務,依賴注入,以及各種各樣的設計原則等,而所有這些方法都基於高內聚,低耦合的原則。 高內聚和低耦合是相互矛盾的,分解粒度越粗的系統耦合性越低,分解粒度越細的系統內聚性越高,過度低耦合的軟體系統,軟體模組內部不可能高內聚,而過度高內聚的軟體模組之間必然是高度依賴的,因此如何兼顧高內聚和低耦合是軟體架構師功力的體現。   高內聚,低耦合的系統有什麼好處呢?事實上,短期來看,並沒有很明顯的好處,甚至短期內會影響系統的開發進度,因為高內聚,低耦合的系統對開發設計人員提出了更高的要求。高內聚,低耦合的好處體現在系統持續發展的過程中,高內聚,低耦合的系統具有更好的重用性,維護性,擴充套件性,可以更高效的完成系統的維護開發,持續的支援業務的發展,而不會成為業務發展的障礙.