日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二、内聚

發(fā)布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二、内聚 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【內(nèi)聚】

1.內(nèi)聚的定義

? ? 一個模塊內(nèi)部元素彼此結(jié)合的緊密程度。其中關(guān)鍵字:模塊、元素、結(jié)合

? ??模塊:大到子系統(tǒng),小到一個函數(shù),都可以看成一個模塊

? ? 元素:

? ? ? ? ? ?模塊:包、命名空間等

? ? ? ? ? ?包:類、接口、全局?jǐn)?shù)據(jù)等

? ? ? ? ? ?類/接口:方法、屬性

? ? ? ? ? ?函數(shù):內(nèi)部的代碼

? 結(jié)合: 用“凝聚力”來理解,更貼切。

? ? ? ? 假如說一個類的方法,都依賴于類自身的其他方法,我們說它內(nèi)聚高。如果一個類的方法依賴外部類的方法,那么這個類的內(nèi)聚性一定不高嗎?不一定。判斷一個模塊內(nèi)部元素的內(nèi)聚性是否高,要看這個模塊內(nèi)部元素的凝聚力。什么是凝聚力?凝聚力就是對模塊本身職責(zé)的專注程度。

? ? ? ? ?例如:操作數(shù)據(jù)庫的CURD類。CURD方法之間沒有任何結(jié)合的關(guān)系。但這四個方法是高內(nèi)聚的。因為它們都專注于CURD類本身的職責(zé)。

2.內(nèi)聚的分類

? ? ? ? 偶然內(nèi)聚:是內(nèi)聚性最差的一種。僅僅是因為某個和本身業(yè)務(wù)無關(guān)的原因而劃分到同一個模塊中。例如最常見的,Utils包。這個包主要是提供一些常用的小工具,像個百寶箱一樣。這種包中的各個功能模塊、各個類專注的職責(zé)都是獨立的,僅是為了方便取用而劃分到了一起。

? ? ? ? 邏輯內(nèi)聚:模塊內(nèi)的元素屬于同一個比較寬泛的類別,但元素的職責(zé)上可能不一樣。例如:鼠標(biāo)、鍵盤、顯示器、打印機(jī),都同屬于IO設(shè)備,但這樣的內(nèi)聚相對還是比較弱的。鼠標(biāo)、鍵盤歸類為輸入設(shè)備模塊,顯示器、打印機(jī)歸類為輸出設(shè)備模塊。這樣,內(nèi)聚性會更高一點。

? ? ? ? 時間內(nèi)聚:這種內(nèi)聚一般在函數(shù)中比較常見。模塊內(nèi)的元素之所以被劃分到一個模塊內(nèi),是因為這些元素的動作在時間上很相近。或者說在某一事件發(fā)生、某一狀態(tài)改變時會調(diào)用這些元素進(jìn)行業(yè)務(wù)處理。例如:異常處理。拋出異常后,一般我們要做釋放資源、記錄日志、通知用戶這些動作都要執(zhí)行。

? ? ? ? 過程內(nèi)聚:這種內(nèi)聚一般在函數(shù)中比較常見。這類元素一般是在處理某個業(yè)務(wù)操作時,必須按照一定的順序來執(zhí)行。例如:讀/寫文件操作。1.判斷文件是否存在,2文件是否有權(quán)限,3打開文件,4讀/寫文件。以上這4步的函數(shù)都是為了完成讀/寫文件這一個操作,并且順序不能錯亂。那么把這4個函數(shù)封裝在一個函數(shù)中,那么它們之間就是過程內(nèi)聚。

? ? ? ? 信息內(nèi)聚:元素被劃分到一個模塊中是因為這些元素所操作的數(shù)據(jù)都是相同的數(shù)據(jù) 或 數(shù)據(jù)類型 或 數(shù)據(jù)源。例如學(xué)生信息類中有對學(xué)生信息操作的CURD方法,那么這些方法在這個類中的內(nèi)聚就是信息內(nèi)聚。

? ? ? ? 順序內(nèi)聚:一個元素執(zhí)行后的輸出,是一個元素執(zhí)行前的輸入,元素之間這種環(huán)環(huán)相扣的關(guān)系就是順序內(nèi)聚。例如:規(guī)則引擎,一個函數(shù)負(fù)責(zé)讀取配置,根據(jù)讀取的配置輸出轉(zhuǎn)換后的執(zhí)行指令,另一個函數(shù)讀取指令進(jìn)而去執(zhí)行。

? ? ? ? 功能內(nèi)聚:功能內(nèi)聚是最好的一種內(nèi)聚方式。模塊內(nèi)部的元素之所以被劃分到一個模塊中,是因為都是為了完成同一個單一任務(wù)。同一個單一任務(wù)這個概念比較難界定。因為前面說的IO設(shè)備、異常處理、讀寫文件也都是單一任務(wù)。功能內(nèi)聚中的單一任務(wù)是指,元素的功能只為了完成所在模塊的任務(wù),別無其他用途。例如:判斷文件是否存在這個函數(shù),既可以在讀寫文件中用,也可以在刪除文件中用;再例如,發(fā)薪水模塊中的計算個人所得稅函數(shù),這個函數(shù)就是功能內(nèi)聚的,因為它除了用在發(fā)薪水中,其他業(yè)務(wù)中用不上。

轉(zhuǎn)載于:https://www.cnblogs.com/mysic/p/8489010.html

總結(jié)

以上是生活随笔為你收集整理的二、内聚的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。