日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

耦合的类型

發(fā)布時(shí)間:2023/12/18 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 耦合的类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

耦合性是程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)的度量。它取決于各個(gè)模塊之間接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過接口。
一般模塊之間可能的連接方式有七種,構(gòu)成耦合性的七種類型。它們之間的關(guān)系為(由弱到強(qiáng))

  • 非直接耦合

    如果兩個(gè)模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)的,這就是非直接耦合。這種耦合的模塊獨(dú)立性最強(qiáng)。 。

  • 數(shù)據(jù)耦合

    如果一個(gè)模塊訪問另一個(gè)模塊時(shí),彼此之間是通過數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。由于限制了只通過參數(shù)表傳遞數(shù)據(jù),按數(shù)據(jù)耦合開發(fā)的程序界面簡(jiǎn)單、安全可靠。因此,數(shù)據(jù)耦合是松散的耦合,模塊之間的獨(dú)立性比較強(qiáng)。在軟件程序結(jié)構(gòu)中至少必須有這類耦合。

  • 標(biāo)記耦合

    如果一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。事實(shí)上,這組模塊共享了這個(gè)記錄,它是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡(jiǎn)單變量。這要求這些模塊都必須清楚該記錄的結(jié)構(gòu),并按結(jié)構(gòu)要求對(duì)此記錄進(jìn)行操作。在設(shè)計(jì)中應(yīng)盡量避免這種耦合,它使在數(shù)據(jù)結(jié)構(gòu)上的操作復(fù)雜化了。如果采取“信息隱蔽”的方法,把在數(shù)據(jù)結(jié)構(gòu)上的操作全部集中在一個(gè)模塊中,就可以消除這種耦合。

  • 控制耦合

    如果一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。如圖4.13所示。這種耦合的實(shí)質(zhì)是在單一接口上選擇多功能模塊中的某項(xiàng)功能。因此,對(duì)所控制模塊的任何修改,都會(huì)影響控制模塊。另外,控制耦合也意味著控制模塊必須知道所控制模塊內(nèi)部的一些邏輯關(guān)系,這些都會(huì)降低模塊的獨(dú)立性。

  • 外部耦合

    一組模塊都訪問同一全局簡(jiǎn)單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。例如C語言程序中各個(gè)模塊都訪問被說明為extern類型的外部變量。外部耦合引起的問題類似于公共耦合,區(qū)別在于在外部耦合中不存在依賴于一個(gè)數(shù)據(jù)結(jié)構(gòu)內(nèi)部各項(xiàng)的物理安排。

  • 公共耦合

    若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。
    這種耦合會(huì)引起下列問題:
    1)所有公共耦合模塊都與某一個(gè)公共數(shù)據(jù)環(huán)境內(nèi)部各項(xiàng)的物理安排有關(guān),若修改某個(gè)數(shù)據(jù)的大小,將會(huì)影響到所有的模塊。
    2)無法控制各個(gè)模塊對(duì)公共數(shù)據(jù)的存取,嚴(yán)重影響軟件模塊的可靠性和適應(yīng)性。
    3)公共數(shù)據(jù)名的使用,明顯降低了程序的可讀性。[Page]
    公共耦合的復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而顯著增加。如圖4.14所示,若只是兩個(gè)模塊之間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況。
    若一個(gè)模塊只是往公共數(shù)據(jù)環(huán)境里傳送數(shù)據(jù),而另一個(gè)模塊只是從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù),則這種公共耦合叫做松散公共耦合。若兩個(gè)模塊都從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù),又都向公共數(shù)據(jù)環(huán)境里送數(shù)據(jù),則這種公共耦合叫做緊密公共耦合。只有在模塊之間共享的數(shù)據(jù)很多,且通過參數(shù)表傳遞不方便時(shí),才使用公共耦合。否則,還是使用模塊獨(dú)立性比較高的數(shù)據(jù)耦合好些。

  • 內(nèi)容耦合((70ntent Coupling)

如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合。
1)一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);
2)一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;
3)兩個(gè)模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編語言中);
4)一個(gè)模塊有多個(gè)入口。
在內(nèi)容耦合的情形,所訪問模塊的任何變更,或者用不同的編譯器對(duì)它再編譯,都會(huì)造成程序出錯(cuò)。好在大多數(shù)高級(jí)程序設(shè)計(jì)語言已經(jīng)設(shè)計(jì)成不允許出現(xiàn)內(nèi)容耦合。它一般出現(xiàn)在匯編語言程序中。這種耦合是模塊獨(dú)立性最弱的耦合。

總結(jié)

以上是生活随笔為你收集整理的耦合的类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。