在畫類圖之前,首先要理清uml中的四種關係,常見的有以下四種關係: 泛化(generalization), 實現(realization),關聯(association),依賴(dependency),而在關聯中又包括:聚合(aggregation),組合(composition),在這幾種關係中他們又有剪不斷的聯絡。
一、概念
【泛化】:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。箭頭指向:帶三角箭頭的實線,箭頭指向父類。
【實現】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現。箭頭指向:帶空心三角箭頭的虛線,箭頭指向介面。
【關聯】:
是一種擁有的關係,它使乙個類知道另乙個類的屬性和方法。箭頭指向:實線箭頭。
【聚合】:表示整體物件擁有部分物件。箭頭指向:空心菱形+實線箭頭。
【組合】:聚合的一種形式,它具有更強的擁有關係,強調整體與部分的生命週期是一致的。箭頭指向:實心菱形+實現箭頭。
【依賴】:
是兩個事物間的語義關係,其中乙個事物(獨立事物)發生變化會影響另乙個事物(依賴事物)。箭頭指向:虛線箭頭。
二、例項介紹
【泛化】:鳥屬於動物,它具有動物的特徵同時還具有自己特有的功能。
【實現】:大雁實現飛翔的介面。
【關聯】:企鵝和氣候,企鵝生活在南極,它需要這種氣候才能生活,企鵝需要『知道』氣候的變化,『了解』氣候規律。
【聚合】:電腦和外接鍵盤,兩者可以獨立存在。
【組合】:鳥和翅膀的關係,不能獨立存在。
【依賴】:動物要生存需要依賴於氧氣,水和食物。
三、pk賽
1、【聚合】pk【組合】
相同點:兩者都表示『擁有』的關係,區別:生命週期的長短。
【聚合】:表示一種弱的『擁有』關係,體現的是a物件可以包含b物件,他們的生命週期或許是不同的,a物件不隨著b物件的消失而消失,
兩者可以獨立存在。
【組合】:表示一種強的『擁有』,他們是部分和整體的關係,他們的生命週期是相同的,a物件會隨著b物件的消失而消失,
二者是不能獨立存在的。
關係強弱比較:組合》聚合
2、【泛化】pk【實現】
相同點:相當於繼承。 子類繼承父類,父類泛化子類。
關係強弱比較:泛化=實現
3、【關聯】pk【依賴】
相同點:都表示依賴關係。區別:類之間關係的強弱程度和類之間關係的時間長短。
【關聯】表示類之間的很強的關係,它表示類之間的「持久」關係,這種關係一般表示一種重要的業務之間的關係,需要儲存的,或者說需要「持久化」的,或者說需要儲存到資料庫中的。
【依賴】表示類之間的較弱的關係,它
表示類之間的是一種「臨時、短暫」關係,這種關係是不需要儲存的。
關係強弱比較:關聯》依賴
得到關係強弱的比較:泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
四、小結
初次學習uml,對四種關係了解的還不是很深,在c#,設計模式中都有提到uml的四種關係和九種圖,相信通過反覆的學習,一定可以加深對他們的理解。
UML類的四種關係
1.例項化 依賴 a將b作為區域性變數進行使用.程式1void a foo 2.關聯 a與b存在一定的關係.這裡只考慮單向導航.關聯在 中有多種表現形式.第一種,作為引數 程式2void a foo b b b b or b b 第二種,作為成員變數 程式3class a void foo priv...
UML六種關係
大話設計模式的學習已經進行了好長的一段時間,通過學習設計模式,發現類圖非常重要,當然類圖的關係依然重要,那麼接下來就再來學習一下類圖的關係。首先就從我覺得見的最多的來分享吧,第乙個就是泛化。特點 三角箭頭 實線 箭頭指的方向為父類 特點 三角箭頭 虛線 箭頭指向介面 是一種使用關係,即乙個類的實線需...
UML六種關係
概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動物的子類。表示方法 空心三角形箭頭的實線,子類指向父類 實現概念 實現是一種類與介面的關係,表示類是...