关于耦合
耦合分類
1.內容耦合:如果發生下列情形,兩個模塊之間就發生的內容耦合
- 一個模塊直接訪問另一個模塊的內部數據
- 一個模塊不通過正常入口轉到另一個模塊內部
- 兩個模塊有一部分程序代碼重疊
- 一個模塊有多個入口
2.公共耦合:若一組模塊都訪問同一個公共數據環境,則他們之間的耦合就稱謂公共耦合。公共的數據環境可以是全局數據結構,共享通信區,內存的公共覆蓋區等。
3.外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。
4.控制耦合:如果一個模塊通過傳送開關,標志,名字等控制信息,明顯地選擇另一個模塊的功能,就是控制耦合
5.標記耦合:一組模塊通過參數表傳遞記錄信息,就是標記耦合,這個記錄是某一項數據結構的子結構,而不是簡單變量
6.數據耦合:一個模塊訪問另一個模塊時,彼此之間通過簡單的數據參數(不是控制參數,公共數據結構或外部變量)來交換輸入,輸出信息的。
7.非直接耦合:兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。
當然這個耦合的分類是比較學術和嚴謹的,但在實際互聯網產品開發中,常見的耦合并沒有這么多,常見并且通常需要考慮的耦合類型有:
□ 數據庫/文件/緩存區耦合;
□ 同步耦合,如函數/方法/類的直接調用,WebService、EJB,或分布式事務;
□ 異步耦合,如異步消息,短連接請求等。
在實際測試工作中,梳理清楚這些耦合是非常有必要的。
總結