激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 高內(nèi)聚低耦合原則_動力節(jié)點Java學院整理

高內(nèi)聚低耦合原則_動力節(jié)點Java學院整理

2020-12-12 16:09caoshenghuan Java教程

耦合度就是某模塊(類)與其它模塊(類)之間的關聯(lián)、感知和依賴的程度,是衡量代碼獨立性的一個指標,也是軟件工程設計及編碼質(zhì)量評價的一個標準

一、什么是耦合度

軟件設計中通常用耦合度和內(nèi)聚度作為衡量模塊獨立程度的標準。劃分摸塊的一個準則就是高內(nèi)聚低耦合。 耦合度(Coupling)是對模塊間關聯(lián)程度的度量。耦合的強弱取決與模塊間接口的復雜性、調(diào)用模塊的方式以及通過界面?zhèn)魉蛿?shù)據(jù)的多少。 模塊間的耦合度是指模塊之間的依賴關系,包括控制關系、調(diào)用關系、數(shù)據(jù)傳遞關系。模塊間聯(lián)系越多,其耦合性越強,同時表明其獨立性越差。降低模塊間的耦合度能減少模塊間的影響,防止對某一模塊修改所引起的“牽一發(fā)動全身”的水波效應,保證系統(tǒng)設計順利進行。 內(nèi)聚和耦合密切相關,同其它模塊存在強耦合關系的模塊常意味這弱內(nèi)聚,強內(nèi)聚常意味著弱耦合。耦合度就是某模塊(類)與其它模塊(類)之間的關聯(lián)、感知和依賴的程度,是衡量代碼獨立性的一個指標,也是軟件工程設計及編碼質(zhì)量評價的一個標準。耦合的強度依賴于以下幾個因素:

(1)一個模塊對另一個模塊的調(diào)用;

(2)一個模塊向另一個模塊傳遞的數(shù)據(jù)量;

(3)一個模塊施加到另一個模塊的控制的多少;

(4)模塊之間接口的復雜程度。

耦合按從強到弱的順序可分為以下幾種類型:

a)非直接耦合:兩模塊間沒有直接關系,之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)的   

b)數(shù)據(jù)耦合:一個模塊訪問另一模塊,彼此間通過簡單數(shù)據(jù)參數(shù)來交換輸入、輸出信息。這里的簡單數(shù)據(jù)參數(shù)不同于控制參數(shù)、公共數(shù)據(jù)結(jié)構或外部變量。   

c)標記耦合:如一組模塊通過參數(shù)表傳遞記錄信息,就是標記耦合。這個記錄是某一數(shù)據(jù)結(jié)構的子結(jié)構,不是簡單變量。   

d)控制耦合:一個模塊通過傳遞開關、標志、名字等控制信息,明顯的控制選擇另一模塊的功能   

e)外部耦合:一組模塊都訪問同一全局簡單變量而不是同一全局數(shù)據(jù)結(jié)構,而且不是通過參數(shù)傳遞該全局變量的信息   

f)公共耦合:一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境。該公共數(shù)據(jù)環(huán)境可以是全局數(shù)據(jù)結(jié)構、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。   

g)內(nèi)容耦合:一個模塊直接修改另一個模塊的數(shù)據(jù),或直接轉(zhuǎn)入另一個模塊內(nèi)聚度是指內(nèi)部各元素之間聯(lián)系的緊密程度,模塊的內(nèi)聚種類通常可分為7種,按其內(nèi)聚度從低到高的次序依此為:偶然內(nèi)聚、邏輯內(nèi)聚、瞬時內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚。

二、為什么要低耦合

了解什么是耦合及耦合的分類后,我想大家對為什么要降低耦合度已經(jīng)有一定的認識,并且多數(shù)開發(fā)人員也大概嘗盡了高耦合帶來的苦頭。道理很簡單,耦合度很高的情況下,維護代碼時修改一個地方會牽連到很多地方,如果修改時沒有理清這些耦合關系,那么帶來的后果可能會是災難性的,特別是對于需求變化較多以及多人協(xié)作開發(fā)維護的項目,修改一個地方會引起本來已經(jīng)運行穩(wěn)定的模塊錯誤,嚴重時會導致惡性循環(huán),問題永遠改不完,開發(fā)和測試都在各種問題之間奔波勞累,最后導致項目延期,用戶滿意度降低,成本也增加了,這對用戶和開發(fā)商影響都是很惡劣的,各種風險也就不言而喻了。

為了預防這些問題的發(fā)生,其中一個重要手段就是降低代碼的耦合度。但也不可能有絕對的零耦合,比如基于J2EE編程那就必須和JDK耦合,而且高耦合也不是一無是處,如果在設計前期預料到某功能后期基本不用修改,那么即使高耦合了也關系不大。但是,在還沒有能力設計出基本不用修改的代碼前,還得要求以低耦合為標準。那么怎樣才能最大限度地降低耦合度呢?下面介紹降低耦合度的幾種方法。

三、降低耦合度的方法 

1、少使用類的繼承,多用接口隱藏實現(xiàn)的細節(jié)。 Java面向?qū)ο缶幊桃虢涌诔酥С侄鄳B(tài)外, 隱藏實現(xiàn)細節(jié)也是其中一個目的。 

2、模塊的功能化分盡可能的單一,道理也很簡單,功能單一的模塊供其它模塊調(diào)用的機會就少。(其實這是高內(nèi)聚的一種說法,高內(nèi)聚低耦合一般同時出現(xiàn),為了限制篇幅,我們將在以后的版期中討論)。 

3、遵循一個定義只在一個地方出現(xiàn)。 

4、少使用全局變量。 

5、類屬性和方法的聲明少用public,多用private關鍵字,

6、多用設計模式,比如采用MVC的設計模式就可以降低界面與業(yè)務邏輯的耦合度。

7、盡量不用“硬編碼”的方式寫程序,同時也盡量避免直接用SQL語句操作數(shù)據(jù)庫。

8、最后當然就是避免直接操作或調(diào)用其它模塊或類(內(nèi)容耦合);如果模塊間必須存在耦合,原則上盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,避免使用內(nèi)容耦合。

內(nèi)聚: 故名思議,表示內(nèi)部間聚集、關聯(lián)的長度,那么高內(nèi)聚就是指要高度的聚集和關聯(lián)。

高內(nèi)聚:類與類之間的關系而定,高,意思是他們之間的關系要簡單,明了,不要有很強的關系,不然,運行起來就會出問題。一個類的運行影響到其他的類。由于高內(nèi)聚具備魯棒性,可靠性,可重用性,可讀性等優(yōu)點,模塊設計推薦采用高內(nèi)聚。這是軟件工程中的概念,是判斷設計好壞的標準,主要是面向OO的設計,主要是看類的內(nèi)聚性是否高,偶合度是否低“高內(nèi)聚,低耦合”,首先要知道一個軟件是由多個子程序組裝而成, 而一個程序由多個模塊(方法)構成!“高內(nèi)聚,低耦合”主要是闡述的面向?qū)ο笙到y(tǒng)中,各個類需要職責分離的思想。 

每一個類完成特定的獨立的功能,這個就是高內(nèi)聚。耦合就是類之間的互相調(diào)用關系,如果耦合很強,互相牽扯調(diào)用很多,那么會牽一發(fā)而動全身,不利于維護和擴展。類之間的設置應該要低耦合,但是每個類應該要高內(nèi)聚.耦合是類之間相互依賴的尺度.如果每個對象都有引用其它所有的對象,那么就有高耦合,這是不合乎要求的,因為在兩個對象之間,潛在性地流動了太多信息.低耦合是合乎要求的:它意味著對象彼此之間更獨立的工作.低耦合最小化了修改一個類而導致也要修改其它類的"連鎖反應". 內(nèi)聚是一個類中變量與方法連接強度的尺度.高內(nèi)聚是值得要的,因為它意味著類可以更好地執(zhí)行一項工作.低內(nèi)聚是不好的,因為它表明類中的元素之間很少相關.成分之間相互有關聯(lián)的模塊是合乎要求的.每個方法也應該高內(nèi)聚.大多數(shù)的方法只執(zhí)行一個功能.不要在方法中添加'額外'的指令,這樣會導致方法執(zhí)行更多的函數(shù). 

推廣開來說,這個思想并不限于類與類之間的關系。模塊和模塊,子系統(tǒng)之間也都要遵守這個原則,才可以設計出延展性比較強的系統(tǒng)。

總結(jié)

以上所述是小編給大家介紹的高內(nèi)聚低耦合原則,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 久久精品久久精品国产大片 | 中文字幕在线网 | 久久久久免费精品国产小说色大师 | 他也色在线视频 | 精品国产一区二区三区四区阿崩 | 欧美一级精品片在线看 | 亚洲精品7777xxxx青睐 | 亚洲va久久久噜噜噜久久男同 | 91午夜免费视频 | www.91成人 | 91精品久久久久久久 | 神马久久精品综合 | 亚洲精品久久久久久久久久久 | 久久久国产精品免费观看 | 免费黄色短视频网站 | 国产另类一区 | 国产va在线观看 | 国产精品久久久久久久久久东京 | 亚洲性生活免费视频 | 亚洲av一级毛片特黄大片 | 免费黄色在线电影 | 污片在线观看视频 | 欧美日韩亚州综合 | 羞羞的视频在线观看 | 久久久久久久亚洲精品 | 久久九九热re6这里有精品 | 极品五月天 | 国产羞羞视频在线观看 | 久久我不卡| 国产一区二区三区四区在线 | 精品成人av一区二区三区 | 长泽雅美av | 国产精品久久久久国产精品三级 | 天堂二区 | 激情毛片 | 91精品国产91久久久 | 成人午夜在线免费视频 | 蜜桃av鲁一鲁一鲁一鲁 | 久久精品re| 精品一区二区久久久久 | 在线成人看片 |