国产在线中文字幕亚洲,一区视频国产精品观看,欧美日韩国产高清片,久久久久久AV无码免费网站,亚洲无码一二三四五区,日韩无码www.,sese444

您好,歡迎來到維庫電子市場網(wǎng) 登錄 | 免費注冊

高內(nèi)聚低耦合
閱讀�4820時間�2017-11-06 09:37:53

  耦合性與�(nèi)聚性是模塊獨立性的兩個定性標�,將軟件系統(tǒng)劃分模塊時,盡量做到高內(nèi)聚低耦合,提高模塊的獨立�,為�(shè)計高�(zhì)量的軟件�(jié)�(gòu)奠定基礎(chǔ)。內(nèi)聚是從功能角度來度量模塊�(nèi)的聯(lián)�,一個好的內(nèi)聚模塊應(yīng)當恰好做一件事,它描述的是模塊�(nèi)的功能聯(lián)�;耦合是軟件結(jié)�(gòu)中各模塊之間相互連接的一種度�,耦合強弱取決于模塊間接口的復(fù)雜程度、進入或訪問一個模塊的點以及通過接口的數(shù)�(jù)�

目錄

概念

  �(nèi)聚就是一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度,高�(nèi)聚就是一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度��
  所謂高�(nèi)聚是指一個軟件模塊是由相�(guān)性很強的代碼組成,只負責一項任�(wù),也就是常說的單一責任原則�
  耦合:一個軟件結(jié)�(gòu)�(nèi)不同模塊之間互連程度的度量(耦合性也叫塊間聯(lián)�。指軟件系統(tǒng)�(jié)�(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差,模塊間耦合的高低取決于模塊間接口的�(fù)雜性,�(diào)用的方式以及傳遞的信��)
  對于低耦合,粗淺的理解是:一個完整的系統(tǒng),模塊與模塊之間,盡可能的使其獨立存�。也就是�,讓每個模�,盡可能的獨立完成某個特定的子功�。模塊與模塊之間的接�,盡量的少而簡�。如果某兩個模塊間的關(guān)系比較復(fù)雜的�,首先考慮進一步的模塊劃分。這樣有利于修改和組合�

知識

  軟件架構(gòu)�(shè)計的目的簡單說就是在保持軟件�(nèi)在聯(lián)系的前提下,分解軟件系統(tǒng),降低軟件系�(tǒng)開發(fā)的復(fù)雜性,而分解軟件系�(tǒng)的基本方法無外乎分層和分�。但是在保持軟件�(nèi)在聯(lián)系的前提�,如何分層分割系�(tǒng),分層分割到什么樣的力�,并不是一件容易的事,這方面有各種各樣的分解方�,比如:�(guān)注點分離,面向方�,面�?qū)ο?,面向接�,面向服?wù),依賴注入,以及各種各樣的設(shè)計原則等�
  耦合可以分為以下幾種,它們之間的耦合度由高到低排列如下:
 ?�?)內(nèi)容耦合:一個模塊直接訪問另一模塊的內(nèi)容,則稱這兩個模塊為�(nèi)容耦合�
  若在程序中出�(xiàn)下列情況之一,則說明兩個模塊之間發(fā)生了�(nèi)容耦合�
  1.一個模塊直接訪問另一個模塊的�(nèi)部數(shù)�(jù)�
  2.一個模塊不通過正常入口而直接轉(zhuǎn)入到另一個模塊的�(nèi)��
  3.兩個模塊有一部分代碼重疊(該部分代碼具有一定的獨立功能)�
  4.一個模塊有多個入��
  �(nèi)容耦合可能在匯編語言中出�(xiàn)。大多數(shù)語言都已�(shè)計成不允許出�(xiàn)�(nèi)容耦合。這種耦合的耦合性最�,模塊獨立性最��
 ?�?)公共耦合:一組模塊都訪問同一個全局�(shù)�(jù)�(jié)�(gòu),則稱之為公共耦合。公共數(shù)�(jù)�(huán)境可以是全局�(shù)�(jù)�(jié)�(gòu)、共享的通信區(qū)、內(nèi)存的公共�(fù)蓋區(qū)�。如果模塊只是向公共�(shù)�(jù)�(huán)境輸入數(shù)�(jù),或是只從公共數(shù)�(jù)�(huán)境取出數(shù)�(jù),這數(shù)�(jù)比較松散的公共耦合;如果模塊既向公共數(shù)�(jù)�(huán)境輸入數(shù)�(jù)又從公共�(shù)�(jù)�(huán)境取出數(shù)�(jù),這屬于較緊密的公共耦合�
  公共耦合會引起以下問題:
  1.無法控制各個模塊對公共�(shù)�(jù)的存�,嚴重影響了軟件模塊的可靠性和適應(yīng)��
  2.使軟件的可維護性變�。若一個模塊修改了公共�(shù)�(jù),則會影響相�(guān)模塊�
  3.降低了軟件的可理解�。不容易清楚知道哪些�(shù)�(jù)被哪些模塊所共享,排錯困��
  一般地,僅當模塊間共享的數(shù)�(jù)很多且通過參數(shù)傳遞很不方便�,才使用公共耦合�
  �3)外部耦合:一組模塊都訪問同一全局簡單變量,而且不通過參數(shù)表傳遞該全局變量的信�,則稱之為外部耦合�
 ?�?)控制耦合:模塊之間傳遞的不是�(shù)�(jù)信息,而是控制信息例如標志、開�(guān)量等,一個模塊控制了另一個模塊的功能�
 ?�?)標記耦合:調(diào)用模塊和被調(diào)用模塊之間傳遞數(shù)�(jù)�(jié)�(gòu)而不是簡單數(shù)�(jù),同時也稱作特征耦合。表就和的模塊間傳遞的不是簡單變�,而是像語言中的�(shù)�(jù)名、記錄名和文件名等數(shù)�(jù)�(jié)�,這些名字即為標記,其實傳遞的是地址�
  �6)數(shù)�(jù)耦合:調(diào)用模塊和被調(diào)用模塊之間只傳遞簡單的數(shù)�(jù)項參�(shù)。相當于語言中的值傳��
  �7)非直接耦合:兩個模塊之間沒有直接關(guān)�,它們之間的�(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的。耦合度最�,模塊獨立性最��
  總結(jié):耦合是影響軟件復(fù)雜程度和�(shè)計質(zhì)量的一個重要因素,為提高模塊的獨立�,應(yīng)建立模塊間盡可能松散的系�(tǒng),在�(shè)計上我們應(yīng)采用以下原則:若模塊間必須存在耦合,應(yīng)盡量使用�(shù)�(jù)耦合,少用控制耦合,慎用或有控制地使用公共耦合,并限制公共耦合的范�,盡量避免內(nèi)容耦合�
  �(nèi)聚有如下的種類,它們之間的�(nèi)聚度由弱到強排列如下�
 ?�?)偶然內(nèi)聚:一個模塊內(nèi)的各處理元素之間沒有任何�(lián)�,只是偶然地被湊到一�。這種模塊也稱為巧合內(nèi)�,內(nèi)聚程度�
 ?�?)邏輯內(nèi)聚:這種模塊把幾種相�(guān)的功能組合在一�,每次被�(diào)用時,由傳送給模塊參數(shù)來確定該模塊�(yīng)完成哪一種功能�
 ?�?)時間內(nèi)聚:把需要同時執(zhí)行的動作組合在一起形成的模塊稱為時間�(nèi)聚模��
  �4)過程內(nèi)聚:�(gòu)件或者操作的組合方式�,允許在�(diào)用前面的�(gòu)件或操作之后,馬上調(diào)用后面的�(gòu)件或操作,即使兩者之間沒有數(shù)�(jù)進行傳遞。簡單的說就是如果一個模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行則稱為過程�(nèi)��
  �5)通信�(nèi)聚:指模塊內(nèi)所有處理元素都在同一個數(shù)�(jù)�(jié)�(gòu)上操作或所有處理功能都通過公用�(shù)�(jù)而發(fā)生關(guān)�(lián)(有時稱之為信息�(nèi)聚)。即指模塊內(nèi)各個組成部分都使用相同的數(shù)�(jù)�(shù)�(jù)或產(chǎn)生相同的�(shù)�(jù)�(jié)�(gòu)�
  �6)順序內(nèi)聚:一個模塊中各個處理元素和同一個功能密切相�(guān),而且這些處理必須順序�(zhí)�,通常前一個處理元素的輸出時后一個處理元素的輸入�
  例如某模塊完成工�(yè)�(chǎn)值求值的功能,前一個功能元素求總產(chǎn)�,后一個功能元素求平均�(chǎn)值,顯然該模塊內(nèi)兩部分緊密關(guān)�(lián)�
  順序�(nèi)聚的�(nèi)聚度比較�,但缺點是不如功能內(nèi)聚易于維護�
 ?�?)功能內(nèi)聚:模塊�(nèi)所有元素的各個組成部分全部都為完成同一個功能而存�,共同完成一個單一的功能,模塊已不可再�。即模塊僅包括為完成某個功能所必須的所有成�,這些成分緊密�(lián)�、缺一不可�
  功能�(nèi)聚是最強的�(nèi)�,其�(yōu)點是它的功能明確。判斷一個模塊是否功能內(nèi)�,一般從模塊名稱就能看出。如果模塊名稱只有一個動詞和一個特定的目標(單�(shù)名詞�,一般來說就是功能內(nèi)�,如:“計算水費�、“計算產(chǎn)值”等模塊。功能內(nèi)聚一般出�(xiàn)在軟件結(jié)�(gòu)圖的較低層次��
  功能�(nèi)聚模塊的一個重要特點是:他是一個“暗盒�,對于該模塊的調(diào)用者來�,只需要知道這個模塊能做什么,而不需要知道這個模塊是如何做的�
  總結(jié):在模塊劃分�,要遵循“一個模塊,一個功能”的原則,盡可能使模塊達到功能內(nèi)��
  高內(nèi)�,低耦合的系�(tǒng)有什么好處呢?事實上,短期來看,并沒有很明顯的好�,甚至短期內(nèi)會影響系�(tǒng)的開�(fā)進度,因為高�(nèi)�,低耦合的系�(tǒng)對開�(fā)�(shè)計人員提出了更高的要�。高�(nèi)�,低耦合的好處體�(xiàn)在系�(tǒng)持續(xù)�(fā)展的過程�,高�(nèi)�,低耦合的系�(tǒng)具有更好的重用性,維護�,擴展�,可以更高效的完成系�(tǒng)的維護開�(fā),持�(xù)的支持業(yè)�(wù)的發(fā)�,而不會成為業(yè)�(wù)�(fā)展的障礙�

維庫電子�,電子知�,一查百通!

已收錄詞�170104