概念學習--耦合與解耦

程序耦合與解耦合

耦合

耦合性(Coupling),也叫耦合度,是對模塊間關聯程度的度量。
耦合的強弱取決於模塊間接口的複雜性、調 用模塊的方式以及通過界面傳送數據的多少。
模塊間的耦合度是指模塊之間的依賴關係,包括控制關係、調用關係、數據傳遞關係。
模塊間聯繫越多,其耦合性越強,同時表明其獨立性越差( 降低耦合性,可以提高其獨立 性)。
在軟件工程中,耦合指的就是就是對象之間的依賴性。對象之間的耦合越高,維護成本越高。因此對象的設計應使類和構件之間的耦合最小。
軟件設計中通常用耦合度和內聚度作爲衡量模塊獨立程度的標準。劃分模塊的一個 準則就是高內聚低耦合。

分類

(1) 內容耦合

當一個模塊直接修改或操作另一個模塊的數據時,或一個模塊不通過正常入口而轉入另 一個模塊時,這樣的耦合被稱爲內容耦合。內容耦合是最高程度的耦合,應該避免使用之。

(2) 公共耦合

兩個或兩個以上的模塊共同引用一個全局數據項,這種耦合被稱爲公共耦合。在具有大 量公共耦合的結構中,確定究竟是哪個模塊給全局變量賦了一個特定的值是十分困難的。

(3) 外部耦合

一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳 遞該全局變量的信息,則稱之爲外部耦合。

(4) 控制耦合

一個模塊通過接口向另一個模塊傳遞一個控制信號,接受信號的模塊根據信號值而進 行適當的動作,這種耦合被稱爲控制耦合。

(5) 標記耦合

若一個模塊 A 通過接口向兩個模塊 B 和 C 傳遞一個公共參數,那麼稱模塊 B 和 C 之間 存在一個標記耦合。

(6) 數據耦合

模塊之間通過參數來傳遞數據,那麼被稱爲數據耦合。數據耦合是最低的一種耦合形 式,系統中一般都存在這種類型的耦合,因爲爲了完成一些有意義的功能,往往需要將某些模塊的輸出數據作爲另
一些模塊的輸入數據。

(7) 非直接耦合

兩個模塊之間沒有直接關係,它們之間的聯繫完全是通過主模塊的控制和調用來實 現的。

解耦

降低程序之間的依賴

思路

1)第一步
使用反射來創建對象,而避免使用new關鍵字
2)第二步
通過讀取配置文件來獲取要創建的對象全限定類名

實例

使用工廠模式進行解耦

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