為每種內聚和耦合舉例

2021-10-19 04:15:55 字數 989 閱讀 1518

參考:

學習中補上些自己的理解。

一、內聚

1、偶然內聚:模組的各成分之間沒有關聯,只是把分散的功能合併在一起。

//程式1

double d1,d2,d3;

if(d1 > d2)

d3 = d1;

else

d3 = d2;

//程式2

int i1,i2,i3;

if(i1 > i2)

i3 = i1;

else

i3 = i2;

以上分別是int double型求最值,沒有關聯,而都是進行同樣的操作求max,故把他們進行合併成乙個模組。(可用c++的模板)

例:a模組實現的是將對應的人員資訊傳送給技術部,人事部和財政部,決定傳送給哪個部門是輸入的控制標誌決定的。

人員資訊傳送(任務)的結果是「傳送給技術部,人事部和財政部」,他們在邏輯上都是要進行處理人員資訊,故屬於類似的一類。所以,模組a中就是邏輯內聚。

3、時間內聚:模組完成的功能必須在同一段時間內執行。(但這些功能只是因為時間因素才有關聯。)

例:class類的建構函式的初始化資訊,必須得是同一段時間內執行。

例:使用者進行購買商品(先付後用)場景中,使用者訂單生效的前提是他得付款。故對於購買支付這個模組,其內部得是:付款->訂單生效。

5、通訊內聚:模組的所有成分都操作同一資料集或生成同一資料集。

例:模組a實現將傳入的date型別資料轉換成string型別,以及將date型別資料插入資料庫,這兩個操作都是對「date型別資料」而言的。模組a中就是通訊內聚。

例:查詢使用者的密碼場景中,使用者輸入的賬戶id是到資料庫中查詢使用者密碼的輸入。沒有使用者id怎麼查其對應的密碼呢?

7、功能內聚:模組的所有成分對於完成單一的功能都是必須的。(成分沒有多餘)

例:模組a實現將新註冊的使用者資訊(使用者名稱,密碼,個性簽名)全部轉換成string型別並插入資料庫。模組a中就是功能內聚。

內聚和耦合

內聚 1.偶然內聚 模組的各成分之間沒有關聯,只是把分散的功能合併在一起。例 a模組中有三條語句 一條賦值,一條求和,一條傳參 表面上看不出任何聯絡,但是b c模組中都用到了這三條語句,於是將這三條語句合併成了模組a。模組a中就是偶然內聚。2.邏輯內聚 邏輯上相關的功能被放在同一模組中。例 a模組實...

內聚和耦合

內聚和耦合 內聚 cohesion 是乙個模組內部各成分之間相關聯程度的度量。耦合 coupling 是模組之間依賴程度的度量。內聚和耦合是密切相關的,與其它模組存在強耦合的模組通常意味著弱內聚,而強內聚的模組通常意味著與其它模組之間存在弱耦合。模組設計追求強內聚,弱耦合。一 內聚強度 內聚按強度從...

想想耦合和內聚

耦合 軟體工程中物件之間的耦合度就是物件之間的依賴性。總結 耦合 依賴 耦合有兩個衡量標準 1.耦合的數量,即耦合的多少。2.耦合的質量等級。耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下 1 內容耦合。當乙個模組直接修改或操作另乙個模組的資料時,或乙個模組不通過正常入口而轉入另乙個模組時,...