偶合力(Coupling)衡量了模塊之間的依賴程度,從低到高依序為:
- 無偶合(No Coupling)
- 資料偶合(Data Coupling)
- 標記偶合(Stamp Coupling)
- 控制偶合(Control Coupling)
- 外部偶合(External Coupling)
- 共同偶合(Common Coupling)
- 內容偶合(Content Coupling)
降低模塊之間的偶合力可以提高系統的可維護性、可重用性和靈活性,這是軟體設計中的一個重要目標。
偶合力(Coupling)
偶合力是軟體工程中用來衡量不同模塊或元件之間依賴程度的一個重要概念。低偶合表示模塊之間的依賴性較低,互相獨立性強,系統的可維護性和可重用性較高;高偶合則意味著模塊之間依賴性較高,改動一個模塊可能會影響其他模塊,系統維護困難。
偶合力的種類
從低到高依序排列,偶合力一般可分為以下幾種:
-
無偶合(No Coupling)
- 意義:模塊之間完全獨立,沒有任何依賴關係。
- 特點:這是理想情況,但在實際系統中很少見。
-
資料偶合(Data Coupling)
- 意義:模塊之間通過參數傳遞簡單的數據,數據本身是獨立的,不包含結構。
- 特點:參數通常是基本數據類型(如整數、字符等),模塊之間依賴性低。
- 例子:函數間傳遞整數或字符串參數。
-
標記偶合(Stamp Coupling)
- 意義:模塊之間通過參數傳遞複合數據結構,如結構體或對象。
- 特點:參數是複合數據類型,模塊之間依賴於數據的具體結構。
- 例子:函數間傳遞結構體或類對象。
-
控制偶合(Control Coupling)
- 意義:一個模塊通過參數傳遞控制信息,影響另一個模塊的行為。
- 特點:模塊之間依賴於控制信息,增加了模塊間的耦合度。
- 例子:傳遞控制標誌或開關,決定另一個模塊的執行路徑。
-
外部偶合(External Coupling)
- 意義:模塊依賴於外部系統、設備或軟件。
- 特點:模塊依賴外部資源,如文件系統、數據庫或硬件設備。
- 例子:一個模塊讀寫文件,依賴於文件系統。
-
共同偶合(Common Coupling)
- 意義:多個模塊共享全局數據。
- 特點:模塊之間依賴於共同的全局數據,全局數據的改動會影響所有依賴它的模塊。
- 例子:多個函數訪問和修改同一全局變量。
-
內容偶合(Content Coupling)
- 意義:一個模塊直接訪問或修改另一個模塊的數據或控制流。
- 特點:這是最緊密的耦合形式,模塊之間高度依賴,維護和修改困難。
- 例子:一個模塊直接改變另一個模塊的變量或函數指針。