高內聚,低偶合

2022-01-13 20:17:44 字數 812 閱讀 6433

內聚:乙個模組內各個元素彼此結合的緊密程度

耦合:乙個軟體結構內不同模組之間互連程度的度量

最近編碼的時候,總是在猶豫是把某個方法封裝在乙個類裡,還是單獨的封裝成乙個類。這讓我突然想起內聚耦合這兩個名詞。

我們一直追求著,高內聚,低耦合。

對於低耦合,我粗淺的理解是:

乙個完整的系統,模組與模組之間,盡可能的使其獨立存在。

也就是說,讓每個模組,盡可能的獨立完成某個特定的子功能。

模組與模組之間的介面,盡量的少而簡單。

如果某兩個模組間的關係比較複雜的話,最好首先考慮進一步的模組劃分。

這樣有利於修改和組合。

對於低耦合,我粗淺的理解是:

在乙個模組內,讓每個元素之間都盡可能的緊密相連。

也就是充分利用每乙個元素的功能,各施所能,以最終實現某個功能。

如果某個元素與該模組的關係比較疏鬆的話,可能該模組的結構還不夠完善,或者是該元素是多餘的。

內聚和耦合,包含了橫向和縱向的關係。功能內聚和資料耦合,是我們需要達成的目標。橫向的內聚和耦合,通常體現在系統的各個模組、類之間的關係,而縱向的耦合,體現在系統的各個層次之間的關係。

對於我在編碼中的困惑,我是這樣想的,用物件導向的思想去考慮乙個類的封裝。

乙個方法,如何封裝,拿到現實生活中來看,看這種能力(方法)是否是屬於這類事物(類)的本能。

如果是,就封裝在這個類裡。

如果不是,則考慮封裝在其它類裡。

如果這種能力,很多事物都具有,則一定要封裝在這類事物的總類裡。

如果這種能力,很多事物都會經常用到,則可以封裝成乙個總類的靜態方法。

高內聚,低耦合

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

高內聚,低耦合

內聚,更為專業的說法叫功能內聚,是對軟體系統中元素職責相關性和集中度的度量。如果元素具有高度相關的職責,除了這些職責內的任務,沒有其它過多的工作,那麼該元素就具有高內聚性,反之則為低內聚性。其實結合oop的思想,高內聚應該是更加趨向於介面化,工廠模式可以很容易體現這種思想。即方法呼叫,只要通過相應的...

高內聚低耦合

明確一點,乙個程式如果是高內聚零耦合會是最完美的,但是沒有絕對的零耦合。也就不存在什麼完美的程式了。1 什麼是高內聚 低耦合?首先了解什麼是內聚 耦合 1.1.1內聚性 每乙個程式中可能會按照不同功能,將整個 段劃分為不同的模組,每乙個模組內部元素彼此之間會有某些聯絡,此種聯絡就是內聚性。同乙個模組...