(1)無直接耦合。無直接耦合指兩個模塊之間沒有直接的關系,它們分別從屬於不同模塊的控制與調用,它們之間不傳遞任何信息。因此模塊間耦合性越弱,模塊獨立性越高。
(2)數據耦合。數據耦合指兩個模塊之間有調用關系,傳遞的是簡單的數據值,相當於高級語言中的值傳遞。這種耦合程度較低,而模塊的獨立性較高。
(3)標記耦合。標記耦合是指兩個模塊之間傳遞的是數據結構,如高級語言中的數組名、記錄名、文件名等這些名字即為標記,其實傳遞的是這個數據結構的地址。兩個模塊必須清楚這些數據結構,並按要求對其進行操作,這樣降低了可理解性。可采用“信息隱蔽”的方法,把該數據結構以及在其上的操作全部集中在壹個模塊,就可消除這種耦合,但有時因為還有其他功能的緣故,標記耦合是不可避免的。
(4)控制耦合。控制耦合指壹個模塊調用另壹個模塊時,傳遞的是控制變量(如開關、標誌等),被調用模塊通過該控制變量的值有選擇地執行模塊內某壹功能。因此被調用模塊內應具有多個功能,哪個功能起作用受其調用模塊控制。