-
耦合性
鎖定
- 中文名
- 耦合性
- 外文名
- coupling
- 別 名
- 耦合度
- 釋 義
- 各模塊間相互聯繫程度的一種度量
耦合性耦合性的分類
耦合性可以是低耦合性(或稱為鬆散耦合),也可以是高耦合性(或稱為緊密耦合)。以下列出一些耦合性的分類,從高到低依序排列:
- 內容耦合(content coupling,耦合度最高)
- 也稱為病態耦合(pathological coupling)當一個模塊直接使用另一個模塊的內部數據,或通過非正常入口而轉入另一個模塊內部。
- 共享耦合/公共耦合(common coupling)
- 也稱為全局耦合(global coupling.)指通過一個公共數據環境相互作用的那些模塊間的耦合。公共耦合的複雜程序隨耦合模塊的個數增加而增加。
- 外部耦合(external coupling)
- 發生在二個模塊共享一個外加的數據格式、通信協議或是設備界面,基本上和模塊和外部工具及設備的溝通有關。
- 控制耦合(control coupling)
- 指一個模塊調用另一個模塊時,傳遞的是控制變量(如開關、標誌等),被調模塊通過該控制變量的值有選擇地執行塊內某一功能;
- 特徵耦合/標記耦合(stamp coupling)
- 也稱為數據結構耦合,是指幾個模塊共享一個複雜的數據結構,如高級語言中的數組名、記錄名、文件名等這些名字即標記,其實傳遞的是這個數據結構的地址;
- 數據耦合/數據耦合(data coupling)
- 是指模塊藉由傳入值共享數據,每一個數據都是最基本的數據,而且只分享這些數據(例如傳遞一個整數給計算平方根的函數)。
- 消息耦合(message coupling,是無耦合之外,耦合度最低的耦合)
- 可以藉由以下二個方式達成:狀態的去中心化(例如在對象中),組件間利用傳入值或消息傳遞 (計算器科學)來通信。
- 無耦合:模塊完全不和其他模塊交換信息。
耦合性面向對象編程
- 子類耦合(subclass coupling)
- 描述子類和父類之間的關係,子類鏈接到父類,但父類沒有鏈接到子類。
- 時空耦合(temporal coupling)
- 二個動作只因為同時間發生,就被包裝在一個模塊中。
後來的研究提出了許多不同層面的耦合性,並且用來評估實務上各種的模塊化法則的實施程度。
耦合性缺點
緊密耦合的系統在開發階段有以下的缺點:
耦合性改善方法
機能設計是一種可以降低耦合性的方法,此方法以機能性的角度設法限制各模塊需負責的事務。在類別A及B之間,若有以下任何一種情形,會提高二者的耦合性:
- A有一個屬性是參考類別B(此屬性的形態為類別B)
- A調用對象B提供的服務
- A有一個方法會參考類別B(此方式會傳回一形態為類別B的物性)
- A是類別B的子類。
鬆散耦合是指二個彼此相關的模塊,其中的接口是一個簡單而穩定的接口,且其接口和任一模塊內部的實現方式無關(參考信息隱藏)。
耦合性耦合性內聚性
耦合性和內聚性二個名詞常一起出現,用來表示一個理想模塊需要有的特點,也就是低耦合性及高內聚性。耦合性着重於不同模塊之間的相依性,而內聚性着重於一模塊中不同功能之間的關係性。低內聚性表示一個模塊中的各機能之間沒什麼關係,當模塊擴展時常常會出現問題。
[1]
耦合性相關條目
- 傳出耦合
- 內聚力 (計算器科學)
- 面向對象編程用語列表
- 鬆散耦合