對高內聚,低耦合的一點理解

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

耦合:一個軟件結構內不同模塊之間互連程度的度量


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

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

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

一個完整的系統,模塊與模塊之間,儘可能的使其獨立存在。

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

模塊與模塊之間的接口,儘量的少而簡單。

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

這樣有利於修改和組合。

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

在一個模塊內,讓每個元素之間都儘可能的緊密相連。

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

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

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

對於我在編碼中的困惑,我是這樣想的,用面向對象的思想去考慮一個類的封裝。
一個方法,如何封裝,拿到現實生活中來看,看這種能力(方法)是否是屬於這類事物(類)的本能。
如果是,就封裝在這個類裏。
如果不是,則考慮封裝在其它類裏。
如果這種能力,很多事物都具有,則一定要封裝在這類事物的總類裏。
如果這種能力,很多事物都會經常用到,則可以封裝成一個總類的靜態方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章