內(nèi)聚的含義內(nèi)聚指一個模塊內(nèi)部元素彼此結(jié)合的緊密程度

在面向?qū)ο箢I(lǐng)域,談到“內(nèi)聚”的時候,模塊的概念遠遠不止我們通常所理解的“系統(tǒng)內(nèi)的某個模塊”這個范圍,而是可大可小,大到一個子系統(tǒng),小到一個函數(shù),你都可以理解為內(nèi)聚里所說的 “模塊”。所以可以用“內(nèi)聚”來判斷一個函數(shù)設(shè)計是否合理,一個類設(shè)計是否合理,一個接口設(shè)計是否合理, 一個包設(shè)計是否合理,一個模塊/子系統(tǒng)設(shè)計是否合理。

其次:“元素”究竟是什么? 有了前面對“模塊”的深入研究后,元素的含義就比較容易明確了(不同語言稍有不同)。

函數(shù):函數(shù)的元素就是“代碼”

類/接口:類的元素是“函數(shù)、屬性”

:包的元素是“類、接口、全局數(shù)據(jù)”等

模塊:模塊的元素是“包、命名空間”等


再次:“結(jié)合”是什么? 英文的原文是“belong”,有“屬于”的意思,翻譯成中文“結(jié)合”,更加貼近中文的理解。但“結(jié)合”本 身這個詞容易引起誤解。絕大部分人看到“結(jié)合”這個單詞,想到的肯定是“你中有我、我中有你”這樣 的含義,甚至可能會聯(lián)想到“美女和帥哥”的結(jié)合,抑或“青蛙王子和公主”的結(jié)合這種情況。這樣的理解本身也并沒有錯,但比較狹隘。 我們以類的設(shè)計為例:假如一個類里面的函數(shù)都是只依賴本類其它函數(shù)(當然不能循環(huán)調(diào)用啦),那內(nèi)聚性肯定是最好的,因為“結(jié)合”得很緊密

判斷一個模塊(函數(shù)、類、包、子系統(tǒng))“內(nèi)聚性”的高低,最重要的是關(guān)注模塊的元素是否都忠于模塊的職責,簡單來說就是“不要掛羊頭賣狗肉”。

【內(nèi)聚的分類】 

以下各種形式的內(nèi)聚的內(nèi)聚性越來越高

【巧合內(nèi)聚(Coincidental cohesion)】

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設(shè)計培訓,網(wǎng)站建設(shè)培訓學習是年輕人改變自己的最好方式