舉個例子:
首先我們引出內聚與耦合的兩個概念.
內聚(Cohesion)是一個模塊內部各成分之間相關聯程度的度量。
耦合(Coupling)是模塊之間依賴程度的度量。
內聚和耦合是密切相關的,與其它模塊存在強耦合的模塊通常意味著弱內聚,而強內聚的模塊通常意味著與其它模塊之間存在弱耦合。
模塊設計追求高內聚,低耦合。
內聚按強度從低到高有以下幾種類型:
(1)偶然內聚。如果一個模塊的各成分之間毫無關系,則稱為偶然內聚。
(2)邏輯內聚。幾個邏輯上相關的功能被放在同一模塊中,則稱為邏輯內聚。如一個模塊讀取各種不同類型外設的輸入。盡管邏輯內聚比偶然內聚合理一些,但邏輯內聚的模塊各成分在功能上并無關系,即使局部功能的修改有時也會影響全局,因此這類模塊的修改也比較困難。
(3)時間內聚。如果一個模塊完成的功能必須在同一時間內執行(如系統初始化),但這些功能只是因為時間因素關聯在一起,則稱為時間內聚。
(4)過程內聚。如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執行,則稱為過程內聚。
(5)通信內聚。如果一個模塊的所有成分都操作同一數據集或生成同一數據集,則稱為通信內聚。
(6)順序內聚。如果一個模塊的各個成分和同一個功能密切相關,而且一個成分的輸出作為另一個成分的輸入,則稱為順序內聚。
(7)功能內聚。模塊的所有成分對于完成單一的功能都是必須的,則稱為功能內聚
耦合的強度依賴于以下幾個因素:
(1)一個模塊對另一個模塊的調用;
(2)一個模塊向另一個模塊傳遞的數據量;
(3)一個模塊施加到另一個模塊的控制的多少;
(4)模塊之間接口的復雜程度。
本文來自:快速記憶法 http://www.885221.com/dp-bbsthread-9493.html