在畫類圖之前,首先要理清UML中的四種關(guān)系,常見的有以下四種關(guān)系: 泛化(Generalization), 實(shí)現(xiàn)(Realization),關(guān)聯(lián)(Association),依賴(Dependency),而在關(guān)聯(lián)中又包括:聚合(Aggregation),組合(Composition),在這幾種關(guān)系中他們又有剪不斷的聯(lián)系。
一、概念
【泛化】:是一種繼承關(guān)系,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為。箭頭指向:帶三角箭頭的實(shí)線,箭頭指向父類。
【實(shí)現(xiàn)】:是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實(shí)現(xiàn)。箭頭指向:帶空心三角箭頭的虛線,箭頭指向接口。
【關(guān)聯(lián)】:是一種擁有的關(guān)系,它使一個(gè)類知道另一個(gè)類的屬性和方法。箭頭指向:實(shí)線箭頭。
【聚合】:表示整體對象擁有部分對象。箭頭指向:空心菱形+實(shí)線箭頭。
【組合】:聚合的一種形式,它具有更強(qiáng)的擁有關(guān)系,強(qiáng)調(diào)整體與部分的生命周期是一致的。箭頭指向:實(shí)心菱形+實(shí)現(xiàn)箭頭。
【依賴】:是兩個(gè)事物間的語義關(guān)系,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化會(huì)影響另一個(gè)事物(依賴事物)。箭頭指向:虛線箭頭。
二、實(shí)例介紹
【泛化】:鳥屬于動(dòng)物,它具有動(dòng)物的特征同時(shí)還具有自己特有的功能。
【實(shí)現(xiàn)】:大雁實(shí)現(xiàn)飛翔的接口。
【關(guān)聯(lián)】:企鵝和氣候,企鵝生活在南極,它需要這種氣候才能生活,企鵝需要‘知道’氣候的變化,‘了解’氣候規(guī)律。
【聚合】:電腦和外接鍵盤,兩者可以獨(dú)立存在。
【組合】:鳥和翅膀的關(guān)系,不能獨(dú)立存在。
【依賴】:動(dòng)物要生存需要依賴于氧氣,水和食物。
三、PK賽
1、【聚合】PK【組合】
相同點(diǎn):兩者都表示‘擁有’的關(guān)系,區(qū)別:生命周期的長短。
【聚合】:表示一種弱的‘擁有’關(guān)系,體現(xiàn)的是A對象可以包含B對象,他們的生命周期或許是不同的,A對象不隨著B對象的消失而消失,兩者可以獨(dú)立存在。
【組合】:表示一種強(qiáng)的‘擁有’,他們是部分和整體的關(guān)系,他們的生命周期是相同的,A對象會(huì)隨著B對象的消失而消失,二者是不能獨(dú)立存在的。
關(guān)系強(qiáng)弱比較:組合>聚合
2、【泛化】PK【實(shí)現(xiàn)】
相同點(diǎn):相當(dāng)于繼承。 子類繼承父類,父類泛化子類。
關(guān)系強(qiáng)弱比較:泛化=實(shí)現(xiàn)
3、【關(guān)聯(lián)】PK【依賴】
相同點(diǎn):都表示依賴關(guān)系。區(qū)別:類之間關(guān)系的強(qiáng)弱程度和類之間關(guān)系的時(shí)間長短。
【關(guān)聯(lián)】表示類之間的很強(qiáng)的關(guān)系,它表示類之間的“持久”關(guān)系,這種關(guān)系一般表示一種重要的業(yè)務(wù)之間的關(guān)系,需要保存的,或者說需要“持久化”的,或者說需要保存到數(shù)據(jù)庫中的。
【依賴】表示類之間的較弱的關(guān)系,它表示類之間的是一種“臨時(shí)、短暫”關(guān)系,這種關(guān)系是不需要保存的。
關(guān)系強(qiáng)弱比較:關(guān)聯(lián)>依賴
得到關(guān)系強(qiáng)弱的比較:泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴
四、小結(jié)
初次學(xué)習(xí)UML,對四種關(guān)系了解的還不是很深,在c#,設(shè)計(jì)模式中都有提到UML的四種關(guān)系和九種圖,相信通過反復(fù)的學(xué)習(xí),一定可以加深對他們的理解。