圖解uml類與類之間的六中關(guān)系

圖解uml類與類之間的六中關(guān)系

ID:9006788

大?。?01.42 KB

頁數(shù):5頁

時間:2018-04-14

圖解uml類與類之間的六中關(guān)系_第1頁
圖解uml類與類之間的六中關(guān)系_第2頁
圖解uml類與類之間的六中關(guān)系_第3頁
圖解uml類與類之間的六中關(guān)系_第4頁
圖解uml類與類之間的六中關(guān)系_第5頁
資源描述:

《圖解uml類與類之間的六中關(guān)系》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、圖解UML類與類之間的六中關(guān)系大話設(shè)計模式上的一個圖,我用EA畫出來的:?UML中的6大關(guān)系相關(guān)英文及音標:?依賴關(guān)系?dependency?[di'pend?nsi]?關(guān)聯(lián)關(guān)系?association??[?,s?u?i'ei??n]?聚合關(guān)系aggregation?[??gr??ge???n]???組合關(guān)系composition?[,k?mp?'zi??n]?實現(xiàn)?realization??[,ri:?l?'ze???n]?泛化?generalization??[,d?en?r?l?'ze???n]?UML中的6大關(guān)系簡單解釋:1.關(guān)聯(lián):連接模

2、型元素及鏈接實例,用一條實線來表示;2.依賴:表示一個元素以某種方式依賴于另一個元素,用一條虛線加箭頭來表示;3.聚合:表示整體與部分的關(guān)系,用一條實線加空心菱形來表示;4.組成:表示整體與部分的有一關(guān)系,用一條實線加實心菱形來表示;5.泛化(繼承):表示一般與特殊的關(guān)系,用一條實線加空心箭頭來表示;6.實現(xiàn):表示類與接口的關(guān)系,用一條虛線加空心箭頭來表示;注意:泛化關(guān)系和實現(xiàn)關(guān)系又統(tǒng)稱為一般關(guān)系;總之:一般關(guān)系表現(xiàn)為繼承或?qū)崿F(xiàn)(isa),關(guān)聯(lián)關(guān)系、聚合關(guān)系、合成/組合關(guān)系表現(xiàn)為成員變量(hasa),依賴關(guān)系表現(xiàn)為函數(shù)中的參數(shù)(usea);UML中

3、的6大關(guān)系詳細說明:1、關(guān)聯(lián)關(guān)系:  含義:類與類之間的連結(jié),關(guān)聯(lián)關(guān)系使一個類知道另外一個類的屬性和方法;通常含有“知道”,“了解”的含義體現(xiàn):在C#中,關(guān)聯(lián)關(guān)系是通過成員變量來實現(xiàn)的;方向:雙向或單向;圖示:實線+箭頭;箭頭指向被關(guān)聯(lián)的類;舉例:“漁民”需要知道“天氣”情況才能夠出?!  ?/公司關(guān)聯(lián)雇員publicclassCompany{???privateEmployeeemployee;???publicEmployeeGetEmployee()???{???????returnemployee;???}???publicvoidSetE

4、mployee(Employeeemployee)???{???????this.employee=employee;???}???//公司運作???????publicvoidRun()???{???????employee.StartWorking();???}}//A關(guān)聯(lián)BclassA{???Bb=newB();}classB{}它體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強依賴關(guān)系,比如我和我的朋友;這種關(guān)系比依賴更強、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的、關(guān)聯(lián)可以是單向、雙向的;表現(xiàn)在

5、代碼層面,為被關(guān)聯(lián)類B以類屬性的形式出現(xiàn)在關(guān)聯(lián)類A中,也可能是關(guān)聯(lián)類A引用了一個類型為被關(guān)聯(lián)類B的全局變量;?2、依賴關(guān)系:  含義:是類與類之間的連接,表示一個類依賴于另外一個類的定義;依賴關(guān)系僅僅描述了類與類之間的一種使用與被使用的關(guān)系;體現(xiàn):在C#中體現(xiàn)為局部變量、方法/函數(shù)的參數(shù)或者是對靜態(tài)方法的調(diào)用;方向:單向;圖示:虛線+箭頭;舉例:人依賴于水和空氣;汽車依賴汽油    //人劃船,人依賴于船publicclassPerson{???//劃船???publicvoidOarage(Boatboat)???{???????boat.Oar

6、age();???}}?//A依賴于BclassA{???publicvoidFunction(Bb)???{}}classB{}可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關(guān)系就是依賴;表現(xiàn)在代碼層面,為類B作為參數(shù)被類A在某個method方法中使用;?3、聚合關(guān)系:  含義:是關(guān)聯(lián)關(guān)系的一種,是一種強關(guān)聯(lián)關(guān)系;聚合關(guān)系是整體和個體/部分之間的關(guān)系;關(guān)聯(lián)關(guān)系的兩個類處于同一個層次上,而聚合關(guān)系的兩個類處于不同的層次上,

7、一個是整體,一個是個體/部分;在聚合關(guān)系中,代表個體/部分的對象有可能會被多個代表整體的對象所共享;體現(xiàn):C++中,聚合關(guān)系通過將被聚合者的(數(shù)組)指針作為內(nèi)部成員來實現(xiàn)的;方向:單向;圖示:空心菱形+實線+箭頭;箭頭指向被聚合的類,也就是說,箭頭指向個體/部分;舉例:鴨群與鴨子具有聚合關(guān)系;汽車由引擎、輪胎以及其它零件組成,因為汽車壞掉了,沒有壞掉的引擎,輪胎和其他零件還可以繼續(xù)使用。聚合是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是整體與部分、擁有的關(guān)系,即has-a的關(guān)系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,

8、也可以為多個整體對象共享;比如計算機與CPU、公司與員工的關(guān)系等;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。