詳解:UML類圖符號、各種關系說明以及舉例
點擊上方藍色“小哈學Java”,選擇“設為星標”
回復“資源”獲取獨家整理的學習資料!


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

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

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

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

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

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

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

“弱”包含表示如果部門沒有了,員工也可以繼續(xù)存在; “強”包含表示如果部門沒有了,員工也不再存在;
END
有熱門推薦?
1.?What?數(shù)據(jù)量巨大還不分庫分表? Sharding-JDBC 入門與項目實戰(zhàn)
最近面試BAT,整理一份面試資料《Java面試BATJ通關手冊》,覆蓋了Java核心技術、JVM、Java并發(fā)、SSM、微服務、數(shù)據(jù)庫、數(shù)據(jù)結構等等。
獲取方式:點“在看”,關注公眾號并回復?Java?領取,更多內容陸續(xù)奉上。
文章有幫助的話,在看,轉發(fā)吧。
謝謝支持喲 (*^__^*)
評論
圖片
表情

