亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談OOP中的耦合、內聚

        2014-04-29 00:00:00趙磊
        計算機光盤軟件與應用 2014年20期

        摘 要:耦合、內聚是軟件工程中的一個概念。低耦合、高內聚是面向對象編程中的應遵守的基本原則。不同的設計人員對于這個原則的理解不同,其所設計、開發(fā)的系統(tǒng)也不盡相同。本文以學生信息管理系統(tǒng)為例,詮釋了筆者對于低耦合、高內聚的理解。

        關鍵詞:耦合;內聚

        中圖分類號:TP312.2-4

        1 耦合

        所謂耦合指的是軟件系統(tǒng)中一個代碼模塊與另一個代碼模塊之間的關系。耦合度越高說明模塊間的關系越緊密;反之模塊之間的關系越少。為了提高軟件系統(tǒng)應對變更的能力、提高代碼的重用率、減少因變更而花費的變更成本,在進行系統(tǒng)設計時應盡量降低模塊之間的耦合度,使各個模塊相對獨立。這樣即使一個模塊發(fā)生了變更,也不會對其他的模塊產(chǎn)生較大的影響。

        以學生信息管理系統(tǒng)為例,學生類和班級類是針對學生和班級這兩個業(yè)務實體的實體類。從低耦合的原則上講它們之間應相對獨立,不產(chǎn)生過多的交互。學生類提供學生信息相關的操作;班級類提供班級信息相關的服務。如圖1所示:

        學生類Student中包含了與學生這個業(yè)務實體相關的屬性和操作,如學號、姓名、班級、住址、手機號、添加學生信息、修改學生信息、刪除學生信息、查詢學生信息等。通常一個學生只屬于一個班級,為此在Student類中包含了一個Classes類型的屬性。實現(xiàn)了Student類對Classes類的多對一關聯(lián)。此外Student類中還包含了通過班級號查詢學生的操作。雖然該操作以學號作為參數(shù),但其主要功能是實現(xiàn)學生的查詢。遵循低耦合的原則,該操作應該放在Student類中,而不是Classes類。

        從分層的角度上講,同樣需要遵循低耦合的原則。如圖2所示:

        對于學生信息管理系統(tǒng)來說,可以采用標準的三層架構,即UI層、實體層、數(shù)據(jù)訪問層(DAL)。其中UI層負責用戶交互;實體層啟到了承上啟下的作用。既對UI層提供功能上的支持,又要調用數(shù)據(jù)訪問層(DAL),實現(xiàn)業(yè)務實體到關系表的映射;數(shù)據(jù)訪問層(DAL)則提供了數(shù)據(jù)持久化的相關操作。

        本著低耦合的原則,層與層之間僅僅是向下依賴的,即UI層依賴于實體層,實體層依賴于數(shù)據(jù)訪問層(DAL)。隔層之間(UI層與數(shù)據(jù)訪問層(DAL))是不可見的。也就是說,UI層不會用到數(shù)據(jù)訪問層(DAL)中的任何成員。這樣就大大降低了層與層之間的耦合度,提高了系統(tǒng)應對變更的能力。舉個例子:假設原有學生信息管理系統(tǒng)為C/S結構,出于部屬方便的考慮,用戶要求將原系統(tǒng)改為B/S結構?;跇藴嗜龑蛹軜嫷膶W生信息管理系統(tǒng)只需將原有的UI層替換為web項目即可。實體層、數(shù)據(jù)訪問層(DAL)保持不變。

        “低耦合”可以總結為“獨”。也就是說在設計和開發(fā)的過程中,要保持類與類之間,層與層之間的相對獨立,不產(chǎn)生多余的關系。

        2 內聚

        所謂的內聚指的是一個模塊各個成員之間的關聯(lián)程度。內聚性越高說明模塊內各個成員關系越緊密,該模塊的重用性越強。內聚按緊密程度從低到高排列,依次為包括:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、信息內聚、功能內聚。

        偶然內聚:因為偶然原因出現(xiàn)在一個模塊中的成員關系。可以說各個成員之間毫無關系,內聚性最低。例如各個系統(tǒng)中都包含的工具類。工具類成員通常有加、解密,生成隨機的校驗碼等操作。

        邏輯內聚:指的是同一個模塊中的成員邏輯上相關,但功能上并無關聯(lián)。

        時間內聚:因為時間因素使一組成員關聯(lián)在一起。例如需要同一時間進行數(shù)據(jù)同步。

        通信內聚:因對同一數(shù)據(jù)集操作或生成同一數(shù)據(jù)集而關聯(lián)在一個模塊內的成員。

        順序內聚:為順序完成一個任務一組成員被放置在一個模塊中,一個成員的輸出作為另一個成員的輸入。

        過程內聚:因在一個過程中被先后調用的操作被放置在一個模塊中。

        信息內聚:基于同一個數(shù)據(jù)的一組成員被放置在一個模塊中。

        功能內聚:為完成單一功能,一組成員必須出現(xiàn)在一個模塊中。功能內聚是一個功能專一、獨立性強、內部結構緊密的內聚類型,是最理想的內聚。例如:Student類包含了學生相關的全部成員。各個成員只為實現(xiàn)學生信息的增刪改查提供支持。

        “高內聚”可以總結為“緊”,即模塊內部各成員之間關系緊密,功能專一。

        3 結束語

        “低耦合、高內聚”是在進行系統(tǒng)設計、開發(fā)過程中應該保持的原則。不同的開發(fā)人員因項目經(jīng)驗不同、對面向對象編程的理解不同而各不相同。要充分理解這六個字還需要在項目實戰(zhàn)中逐步的去理解,需要一個由量變到質變的過程。

        參考文獻:

        [1]梁立新.項目實踐精解·ASP.NET應用開發(fā):基于ASP.NET?C#和ADO.NET的三層架構案例分析[M].北京:電子工業(yè)出版社,2010.

        [2]Matthew MacDonald.ASP.NET高級程序設計[M].北京:人民郵電出版社,2011.

        [3]Christian Thilmany..NET模式:架構設計與過程[M].北京:中國電力出版社,2005.

        [4]Jeffrey Richter.Microsoft.NET框架程序設計[M].北京:清華大學出版社,2003.

        [5]Martin L.Shoemaker.UML實戰(zhàn)教程[M].北京:清華大學出版社,2006.

        作者簡介:趙磊(1981-),男,河北人,軟件系副主任,講師,碩士,研究方向:軟件技術。

        作者單位:天津電子信息職業(yè)技術學院,天津 300312

        国模吧无码一区二区三区| 国产精品麻豆成人av| 国产精品无码无片在线观看3D| 久久亚洲aⅴ精品网站婷婷| 青青草视频在线视频播放| 蜜桃网站在线免费观看视频 | 亚洲av极品尤物不卡在线观看| 少妇久久一区二区三区| 手机在线观看日韩不卡av| 国产美女高潮流白浆免费视频| 强奸乱伦影音先锋| 天天夜碰日日摸日日澡性色av| 国产欧美一区二区三区在线看| 国产欧美日韩一区二区三区在线 | 欧美精品免费观看二区| 欧美a在线播放| 国内成人精品亚洲日本语音| 日本韩国三级aⅴ在线观看| 搡老女人老妇女老熟妇69| 三级国产自拍在线观看| 少妇真实被内射视频三四区| 欧美人与禽2o2o性论交| 一区二区传媒有限公司| 亚洲高清国产品国语在线观看 | 中国a级毛片免费观看| 人禽无码视频在线观看| 亚洲免费无毛av一区二区三区| 色se在线中文字幕视频| 极品少妇一区二区三区| 国产乱人伦av在线麻豆a| 精品无码人妻一区二区三区不卡| 中文字幕无码人妻丝袜| 国产福利97精品一区二区| 中文字幕精品人妻丝袜| 新婚少妇无套内谢国语播放| 日本少妇高潮喷水xxxxxxx| 亚洲国色天香卡2卡3卡4| 欧美gv在线观看| 欧美zozo另类人禽交| 快射视频网站在线观看| 欧美老妇交乱视频在线观看|