關係:事物間的聯繫
關係貫穿於建模的全過程,正確理解其含義頗有必要。uml定義的關係主要有六種:依賴、類屬、關聯、實現、聚合和組合。下面對其定義和表示方法逐一說明。
- 依賴(Dependency):元素A的變化會影響元素B,但反之不成立,那麼B和A的關係是依賴關係,B依賴A;類屬關係和實現關係在語義上講也是依賴關係,但因爲其有更特殊的用途,因此被單獨描述。uml中用帶箭頭的虛線表示Dependency關係,箭頭指向被依賴元素。
- 類屬(Generalization):一般所說的繼承(特殊個體 is kind of 通常個體)關係,沒必要多解釋了。uml中用帶空心箭頭的實線線表示Generalization關係,箭頭指向通常個體。
- 實現(Realize):元素A定義一個約定,元素B實現這個約定,則B和A的關係是Realize,B realize A。這個關係最經常使用於接口。uml中用空心空心箭頭和虛線表示Realize關係,箭頭指向定義約定的元素。
- 關聯(Association):元素間的結構化關係,是一種弱關係,被關聯的元素間一般能夠被獨立的考慮。uml中用實線表示Dependency關係,箭頭指向被依賴元素。
- 聚合(Aggregation):關聯關係的一種特例,表示部分和總體(總體 has a 部分)的關係。uml中用帶空心菱形頭的實線表示Aggregation關係,菱形頭指向總體。
- 組合(Composition):組合是聚合關係的變種,表示元素間更強的組合關係。若是是組合關係,若是總體被破壞則個體必定會被破壞,而聚合的個體則多是被多個總體所共享的,不必定會隨着某個總體的破壞而被破壞。uml中用帶實心心菱形頭的實線表示Composition關係,菱形頭指向總體。
在個人理解來看,關係分爲兩類:依賴和關聯,依賴表示比關聯更強的元素間關係。類屬和實現是依賴的特例,聚合和組合是關聯關係的特例。
下面用一個類圖來簡單說明一下以上關係的用法。圖中描述的是一我的員列表的管理,原理比較簡單,不贅述了。
圖用PowerDesigner繪製,其關聯關係用帶箭頭的實現來表示了參考資料《uml系統分析設計與應用案例》