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