通俗來講,耦合就是一種關系,指子產品之間的關系。 耦合有很多種分類,一般子產品之間是有七種,也就是說子產品之間的連接配接方式大概有七種。
資料耦合是指兩個子產品之間有調用關系,子產品間傳遞的是簡單的資料值。

一、非直接耦合
非直接耦合:弱耦合,兩子產品之間沒有直接關系
在這個圖中,B和C就是非直接耦在系統中基本無法做到非直接耦合
二、資料耦合
資料耦合:弱耦合,子產品之間通過簡單參數來交換資訊。 在這種耦合關系下,開發的程式界面簡單,安全。是以,資料耦合是一種松散的耦合,子產品間獨立性較強,軟體程式結構中必須有這種耦合。
三、标記耦合
标記耦合:弱耦合,傳遞資料的一部分,通過參數表傳遞記錄資訊。可以改造成資料耦合。
四、控制耦合
控制耦合:中耦合,傳遞資料變量,子產品之間通過傳送開關,标志,名字等控制資訊
另外,控制耦合也意味着控制子產品必須知道所控制子產品内部的一些邏輯關系,這些都會降低子產品的獨立性。
五、外部耦合
外部耦合:較強耦合,共用全局變量,跟外部蛇不相連,不用參數表傳遞資訊 外部耦合類似于公共耦合,差別在于外部耦合中不存在依賴于一個資料結構内部各項的實體安排。
六、公共耦合
公共耦合:較強耦合,通路同一個公共資料環境。 公共的資料環境可以使全局資料結構、共享的通信區、記憶體的公共覆寫區等。一般隻有參數表傳遞不友善時才使用公共耦合。 公共耦合會引起很多問題: (1)所有公共耦合子產品都于某一個公共資料環境内部各項的實體安排有關,若修改個資料的大小,将會影響到所有子產品。 (2)無法控制各個子產品對公共資料的存取,嚴重影響軟體子產品可靠性和适應性。 (3)公共資料名的使用,明顯降低程式的可讀性。 分為松散公共耦合和緊密公共耦合。
若一個子產品知識我那個公共資料環境裡傳送資料,另一個子產品知識從公共環境中提取資料,則這種公共耦合叫做松散公共耦合。 若兩個子產品都從公共資料環境中取資料,又都向公共資料環境裡送資料,則這種公共耦合叫緊密公共耦合。
七、内容耦合
發生内容耦合有幾種情況 (1)一個子產品直接通路另一個子產品的内部資料。 (2)一個子產品不通過正常入口轉到另一子產品内部資料。 (3)兩個子產品有一部分程式代碼重疊(隻在彙編語言中) (4)一個子產品有多個入口。 内容耦合的情況下,通路的子產品有任何的變更,或者使用不同的編譯器,都會造成程式出錯。 原則上講,子產品化設計的終極目标,是希望建立子產品間耦合盡可能松散的系統。 那麼,系統子產品化設計時,降低子產品間的耦合度有幾種方法。 (1)根據問題的特點,選擇适當的耦合類型。 (2)降低子產品接口的複雜性 (3)把子產品資訊統統放在緩沖區中
有一個很有意思的比喻,兩隻章魚,7隻腳互相纏繞,就是高耦合性,隻有1隻腳互相纏繞就是低耦合性。