高內聚低耦合

技術靳發表於2020-12-18

高內聚低耦合,是軟體工程中的概念,是判斷軟體設計好壞的標準,主要用於程式的物件導向的設計,主要看類的內聚性是否高,耦合度是否低。目的是使程式模組的可重用性、移植性大大增強。通常程式結構中各模組的內聚程度越高,模組間的耦合程度就越低。內聚是從功能角度來度量模組內的聯絡,一個好的內聚模組應當恰好做一件事,它描述的是模組內的功能聯絡;耦合是軟體結構中各模組之間相互連線的一種度量,耦合強弱取決於模組間介面的複雜程度、進入或訪問一個模組的點以及通過介面的資料。

自己的理解:

  • 耦合: 模組與模組之間的聯絡。

  • 內聚:一般指(東西聚集在一起)形成一個模組,例如方法,變數,物件,或者是功能模組。

  • 高內聚:儘可能的讓一個模組內部的程式碼相關程度高,相互聯絡的緊密。模組內部的程式碼,相互之間的聯絡越強,內聚就越高, 模組的獨立性就越好。 一個模組應該儘量去獨立的完成一個功能!如果必須寫另外的功能,建議拆分成多個模組,低內聚的程式碼,不好維護,程式碼也不夠健壯。

  • 低耦合:儘可能的將每一個功能通過模組單獨寫出去 ,然後通過指定的介面來相互聯絡,模組與模組之間的關係越是緊密,獨立性就越不好,改變一個模組可能會影響其他的模組。

    小故事:

  • 有一天,我和幾名同事帶著各自家人出去旅遊。當然,我和我的同事們很熟悉,但都不認識彼此家人。旅遊要好幾天。因為人多,所以需要分成若干小團體(模組),每個團體給一個對講機相互聯絡。這該怎麼安排呢?主流的方案是:按家庭分成幾個小團隊,自家人管自家人;題主和同事擔任介面人。這個方案有什麼好處呢?

  • 1、高內聚,自家人在一起,家庭內部財務自理,節約管理成本;酒店房間可以讓夫妻和小孩住一間,節省出行費用。你媳婦兒要給孩子餵奶,抱起來儘管喂,用不著請示你同事

  • 2、低耦合,只有涉及你們幾個家庭之間的事務才需要你們幾個介面人接頭。省心,高效。嗯,你看,自由自在又能彼此幫忙,因此大家都很愉快。

這裡有倆張圖片

低內聚,高耦合
在這裡插入圖片描述
高內聚低耦合
在這裡插入圖片描述

相關文章