簡介
安全
耦合性也叫塊間聯繫。指軟件系統結構中各模塊間相互聯繫緊密程度的一種度量。模塊之間聯繫越緊密,其耦合性就越強,模塊的獨立性則越差,模塊間耦合的高低取決於模塊間接口的複雜性,調用的方式以及傳遞的信息。數據結構
形象的說,就是要將代碼寫的和電腦同樣,主類就是電腦的主機箱,當程序須要實現什麼功能的時候只須要加其餘的類引入接口,就像電腦上的usb接口。設計
通常模塊之間可能的鏈接方式有七種,構成耦合性的七種類型。它們之間的關係爲(獨立性由強到弱)
非直接耦合(Nondirect Coupling)
若是兩個模塊之間沒有直接關係,它們之間的聯繫徹底是經過主模塊的控制和調用來實現的,這就是非直接耦合。這種耦合的模塊獨立性最強。 。
數據耦合(Data Coupling)
若是一個模塊訪問另外一個模塊時,彼此之間是經過數據參數(不是控制參數、公共數據結構或外部變量)來交換輸入、輸出信息的,則稱這種耦合爲數據耦合。因爲限制了只經過參數表傳遞數據,按數據耦合開發的程序界面簡單、安全可靠。所以,數據耦合是鬆散的耦合,模塊之間的獨立性比較強。在軟件程序結構中至少必須有這類耦合。
接口
印記耦合(Stamp Coupling)
若是一組模塊經過參數表傳遞記錄信息,就是標記耦合。事實上,這組模塊共享了這個記錄,它是某一數據結構的子結構,而不是簡單變量。這要求這些模塊都必須清楚該記錄的結構,並按結構要求對此記錄進行操做。在設計中應儘可能避免這種耦合,它使在數據結構上的操做複雜化了。若是採起「信息隱蔽」的方法,把在數據結構上的操做所有集中。
內存
控制耦合(Control Coupling)
若是一個模塊經過傳送開關、標誌、名字等控制信息,明顯地控制選擇另外一模塊的功能,就是控制耦合。這種耦合的實質是在單一接口上選擇多功能模塊中的某項功能。所以,對所控制模塊的任何修改,都會影響控制模塊。另外,控制耦合也意味着控制模塊必須知道所控制模塊內部的一些邏輯關係,這些都會下降模塊的獨立性。
開發
外部耦合(External Coupling)
一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,並且不是經過參數表傳遞該全局變量的信息,則稱之爲外部耦合。例如C語言程序中各個模塊都訪問被說明爲extern類型的外部變量。外部耦合引發的問題相似於公共耦合,區別在於在外部耦合中不存在依賴於一個數據結構內部各項的物理安排。
編譯器
公共耦合(Common Coupling)
若一組模塊都訪問同一個公共數據環境,則它們之間的耦合就稱爲公共耦合。公共的數據環境能夠是全局數據結構、共享的通訊區、內存的公共覆蓋區等。 這種耦合會引發下列問題:
全部公共耦合模塊都與某一個公共數據環境內部各項的物理安排有關,若修改某個數據的大小,將會影響到全部的模塊。
沒法控制各個模塊對公共數據的存取,嚴重影響軟件模塊的可靠性和適應性。
公共數據名的使用,明顯下降了程序的可讀性。
公共耦合的複雜程度隨耦合模塊的個數增長而顯著增長。若只是兩個模塊之間有公共數據環境,則公共耦合有兩種狀況。
若一個模塊只是往公共數據環境裏傳送數據,而另外一個模塊只是從公共數據環境中取數據,則這種公共耦合叫作鬆散公共耦合。若兩個模塊都從公共數據環境中取數據,又都向公共數據環境裏送數據,則這種公共耦合叫作緊密公共耦合。只有在模塊之間共享的數據不少,且經過參數表傳遞不方便時,才使用公共耦合。不然,仍是使用模塊獨立性比較高的數據耦合好些。
編譯
內容耦合(Content Coupling)
若是發生下列情形,兩個模塊之間就發生了內容耦合。
一個模塊直接訪問另外一個模塊的內部數據;
一個模塊不經過正常入口轉到另外一模塊內部;
兩個模塊有一部分程序代碼重疊(只可能出如今彙編語言中);
一個模塊有多個入口。
在內容耦合的情形,所訪問模塊的任何變動,或者用不一樣的編譯器對它再編譯,都會形成程序出錯。好在大多數高級程序設計語言已經設計成不容許出現內容耦合。它通常出如今彙編語言程序中。這種耦合是模塊獨立性最弱的耦合。
程序設計
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。變量