詳解:UML類(lèi)圖符號(hào)、各種關(guān)系說(shuō)明以及舉例
點(diǎn)擊上方“碼農(nóng)突圍”,馬上關(guān)注
這里是碼農(nóng)充電第一站,回復(fù)“666”,獲取一份專(zhuān)屬大禮包
真愛(ài),請(qǐng)?jiān)O(shè)置“星標(biāo)”或點(diǎn)個(gè)“在看”

依賴(lài)**(Dependency)**:元素A的變化會(huì)影響元素B,但反之不成立,那么B和A的關(guān)系是依賴(lài)關(guān)系,B依賴(lài)A;類(lèi)屬關(guān)系和實(shí)現(xiàn)關(guān)系在語(yǔ)義上講也是依賴(lài)關(guān)系,但由于其有更特殊的用途,所以被單獨(dú)描述。uml中用帶箭頭的虛線表示Dependency關(guān)系,箭頭指向被依賴(lài)元素。 泛化(Generalization):通常所說(shuō)的繼承(特殊個(gè)體 is kind of 一般個(gè)體)關(guān)系,不必多解釋了。uml中用帶空心箭頭的實(shí)線線表示Generalization關(guān)系,箭頭指向一般個(gè)體。 實(shí)現(xiàn)(Realize):元素A定義一個(gè)約定,元素B實(shí)現(xiàn)這個(gè)約定,則B和A的關(guān)系是Realize,B realize A。這個(gè)關(guān)系最常用于接口。uml中用空心箭頭和虛線表示Realize關(guān)系,箭頭指向定義約定的元素。 關(guān)聯(lián)(Association):元素間的結(jié)構(gòu)化關(guān)系,是一種弱關(guān)系,被關(guān)聯(lián)的元素間通??梢员华?dú)立的考慮。uml中用實(shí)線表示Association關(guān)系,箭頭指向被依賴(lài)元素。 聚合(Aggregation):關(guān)聯(lián)關(guān)系的一種特例,表示部分和整體(整體 has a 部分)的關(guān)系。uml中用帶空心菱形頭的實(shí)線表示Aggregation關(guān)系,菱形頭指向整體。 組合(Composition):組合是聚合關(guān)系的變種,表示元素間更強(qiáng)的組合關(guān)系。如果是組合關(guān)系,如果整體被破壞則個(gè)體一定會(huì)被破壞,而聚合的個(gè)體則可能是被多個(gè)整體所共享的,不一定會(huì)隨著某個(gè)整體的破壞而被破壞。uml中用帶實(shí)心菱形頭的實(shí)線表示Composition關(guān)系,菱形頭指向整體。
1.1.1 ? ?依賴(lài)(Dependency):虛線箭頭表示
public?class?Person
{
????void?buy(Car?car)
???{
???????...
????}
}

使用< 調(diào)用< >--聲明一個(gè)類(lèi)調(diào)用其他類(lèi)的操作的方法。 參數(shù)< >--聲明一個(gè)操作和它的參數(shù)之間的關(guān)系。 發(fā)送< >--聲明信號(hào)發(fā)送者和信號(hào)接收者之間的關(guān)系。 實(shí)例化< >--聲明用一個(gè)類(lèi)的方法創(chuàng)建了另一個(gè)類(lèi)的實(shí)例。
跟蹤< >--聲明不同模型中的元素之間存在一些連接但不如映射精確。 精化< >--聲明具有兩個(gè)不同語(yǔ)義層次上的元素之間的映射。 派生< >--聲明一個(gè)實(shí)例可以從另一個(gè)實(shí)例導(dǎo)出。
訪問(wèn)< >--允許一個(gè)包訪問(wèn)另一個(gè)包的內(nèi)容。 導(dǎo)入< >--允許一個(gè)包訪問(wèn)另一個(gè)包的內(nèi)容并為被訪問(wèn)包的組成部分增加別名。 友元< >--允許一個(gè)元素訪問(wèn)另一個(gè)元素,不管被訪問(wèn)的元素是否具有可見(jiàn)性。
綁定< >--為模板參數(shù)指定值,以生成一個(gè)新的模型元素。
1.1.2 ? ?關(guān)聯(lián)(Association):實(shí)線箭頭表示
public?class?徒弟
{??
}
public?class?唐僧
{
?????protected:?list<徒弟>?tdlist;
}

1.1.3 ? ?聚合(Aggregation):帶空心菱形頭表示
public?class?引擎
?{
?}
public?class?輪胎
?{
?}
public?class?汽車(chē)
{
????????protected:引擎?engine;
????????protected:輪胎?tyre[4];
}

1.1.4 ? ?組合(Composition):帶實(shí)心菱形頭的實(shí)線表示
class?肢
?{
?}
?class?人
?{
????????protected:??肢???limb[4];
?}

1.1.5 ? ?泛化(Generalization):
帶空心箭頭的實(shí)線線表示

1.1.6 ? ?實(shí)現(xiàn)(Realization):空心箭頭和虛線表示

二、相互之間的區(qū)別

“弱”包含表示如果部門(mén)沒(méi)有了,員工也可以繼續(xù)存在; “強(qiáng)”包含表示如果部門(mén)沒(méi)有了,員工也不再存在;
最近熱文
? ?外包公司干了不到 3 個(gè)月,我離職了...(防坑指南) ???MATLAB被禁,中國(guó)重新開(kāi)發(fā)要多久? ???網(wǎng)傳互聯(lián)網(wǎng)公司加班表,排名第一的沒(méi)有懸念! ???查詢(xún)速度提升200倍,ClickHouse到底有多快? 最近整理了一份大廠算法刷題指南,包括一些刷題技巧,在知乎上已經(jīng)有上萬(wàn)贊。同時(shí)還整理了一份6000頁(yè)面試筆記。關(guān)注下面公眾號(hào),在公眾號(hào)內(nèi)回復(fù)「刷題」,即可免費(fèi)獲??!回復(fù)「加群」,可以邀請(qǐng)你加入讀者群!
明天見(jiàn)(??ω??)??
評(píng)論
圖片
表情
