術(shù)語(yǔ)匯編 深入學(xué)習(xí)UML類(lèi)關(guān)系圖
本文和大家重點(diǎn)討論一下UML類(lèi)關(guān)系圖。類(lèi)主要有屬性(Attribute)和方法(Method)構(gòu)成,屬性代表對(duì)象的狀態(tài),如果屬性被保存到數(shù)據(jù)庫(kù),此稱(chēng)之為“持久化”;方法代表對(duì)象的操作行為,類(lèi)具有繼承關(guān)系,可以繼承于父類(lèi),也可以與其他的Class進(jìn)行交互。
一、簡(jiǎn)介
類(lèi)是對(duì)象的集合,展示了對(duì)象的結(jié)構(gòu)以及與系統(tǒng)的交互行為。類(lèi)主要有屬性(Attribute)和方法(Method)構(gòu)成,屬性代表對(duì)象的狀態(tài),如果屬性被保存到數(shù)據(jù)庫(kù),此稱(chēng)之為“持久化”;方法代表對(duì)象的操作行為,類(lèi)具有繼承關(guān)系,可以繼承于父類(lèi),也可以與其他的Class進(jìn)行交互。
類(lèi)圖展示了系統(tǒng)的邏輯結(jié)構(gòu),類(lèi)和接口的關(guān)系。
二、類(lèi)的構(gòu)成
類(lèi)主要有屬性和方法構(gòu)成。比如商品屬性有:名稱(chēng)、價(jià)格、高度、寬度等;商品的方法有:計(jì)算稅率,獲得商品的評(píng)價(jià)等等。如下圖
三、UML類(lèi)關(guān)系圖中關(guān)系
關(guān)聯(lián)(Association)
兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象的實(shí)例與另外一個(gè)對(duì)象的特定實(shí)例存在固定關(guān)系時(shí),這兩個(gè)對(duì)象之間就存在關(guān)聯(lián)關(guān)系。
1、單向關(guān)聯(lián)
A1->A2:表示A1認(rèn)識(shí)A2,A1知道A2的存在,A1可以調(diào)用A2中的方法和屬性
場(chǎng)景:訂單和商品,訂單中包括商品,但是商品并不了解訂單的存在。
類(lèi)與類(lèi)之間的單向關(guān)聯(lián)圖:
代碼表現(xiàn)為:Order(A1)中有Product(A2)的變量或者引用
2、雙向關(guān)聯(lián)
B1-B2:表示B1認(rèn)識(shí)B2,B1知道B2的存在,B1可以調(diào)用B2中的方法和屬性;同樣B2也知道B1的存在,B2也可以調(diào)用B1的方法和屬性。
場(chǎng)景:訂單和客戶(hù),訂單屬于客戶(hù),客戶(hù)擁有一些特定的訂單
UML類(lèi)關(guān)系圖中類(lèi)與類(lèi)之間的雙向關(guān)聯(lián)圖
3、自身關(guān)聯(lián)
同一個(gè)類(lèi)對(duì)象之間的關(guān)聯(lián)。
UML類(lèi)關(guān)系圖中類(lèi)與類(lèi)之間自身關(guān)聯(lián)圖
4、多維關(guān)聯(lián)(N-aryAssociation)
多個(gè)對(duì)象之間存在關(guān)聯(lián)
場(chǎng)景:公司雇用員工,同時(shí)公司需要支付工資給員工
類(lèi)與類(lèi)之間的多維關(guān)聯(lián)圖:
#p#
5、泛化(Generalization)
UML類(lèi)關(guān)系圖中泛化指的是,類(lèi)與類(lèi)的繼承關(guān)系,類(lèi)與接口的實(shí)現(xiàn)關(guān)系。
場(chǎng)景:父與子、動(dòng)物與人、植物與樹(shù)、系統(tǒng)使用者與B2C會(huì)員和B2E會(huì)員的關(guān)系
類(lèi)與類(lèi)之間的泛化圖:
系統(tǒng)的使用者包括:B2C會(huì)員、B2B會(huì)員和B2E會(huì)員
6、依賴(lài)(Dependency)
類(lèi)A要完成某個(gè)功能必須引用類(lèi)B,則A與B存在依賴(lài)關(guān)系,UML類(lèi)關(guān)系圖中依賴(lài)關(guān)系是弱的關(guān)聯(lián)關(guān)系。
C#不建議雙相依賴(lài),也就是相互引用
場(chǎng)景:本來(lái)人與電腦沒(méi)有關(guān)系的,但由于偶然的機(jī)會(huì),人需要用電腦寫(xiě)程序,這時(shí)候人就依賴(lài)于電腦。
類(lèi)與類(lèi)的依賴(lài)關(guān)系圖,在程序中一般為using引用。
#p#
7、聚合(Aggregation)
當(dāng)對(duì)象A被加入到對(duì)象B中,成為對(duì)象B的組成部分時(shí),對(duì)象B和對(duì)象A之間為聚合關(guān)系。UML類(lèi)關(guān)系圖中聚合是關(guān)聯(lián)關(guān)系的一種,是較強(qiáng)的關(guān)聯(lián)關(guān)系,強(qiáng)調(diào)的是整體與部分之間的關(guān)系。
場(chǎng)景:商品和他的規(guī)格、樣式就是聚合關(guān)系。
類(lèi)與類(lèi)的聚合關(guān)系圖
8、組合(Composite)
對(duì)象A包含對(duì)象B,對(duì)象B離開(kāi)對(duì)象A沒(méi)有實(shí)際意義。UML類(lèi)關(guān)系圖中組合是一種更強(qiáng)的關(guān)聯(lián)關(guān)系。人包含手,手離開(kāi)人的軀體就失去了它應(yīng)有的作用。
場(chǎng)景:Window窗體由滑動(dòng)條slider、頭部Header和工作區(qū)Panel組合而成。
類(lèi)與類(lèi)的組合關(guān)系圖
四、總結(jié)
本文針對(duì)UML類(lèi)關(guān)系圖中類(lèi)之間常用的關(guān)系進(jìn)行了簡(jiǎn)單的描述,主要有:關(guān)聯(lián)關(guān)系、泛化、依賴(lài)、聚合和組合?!?/p>
【編輯推薦】
- 實(shí)例解析四大UML類(lèi)關(guān)系圖
- 四大UML類(lèi)關(guān)系圖揭秘
- 繪制UML圖時(shí)應(yīng)避免的六大問(wèn)題
- UML部署圖繪制及應(yīng)用說(shuō)明
- 九步實(shí)現(xiàn)UML包圖創(chuàng)建