類圖的3個基本組件:類名、屬性、方法。
類的主要關係:關聯,聚合,組合泛化,依賴,實現。
- 用來標識Class的可見性
visibility
(默認爲public) - 用來添加
Note
的,比如:類的說明 - 增加類的屬性
Attribute
- 增加類的操作方法
Operation
- 增加Reception
- 增加子類
Sub-Class
- 增加父類
Super-Class
- 添加已有的接口
Privided-Interface
- 添加需要的接口
Required-Interface
- 添加關聯
Associated-Class
- 添加聚合
Aggregated-Calss
- 添加組合
Composited-Class
- 添加端口
Port
- 添加部件
Part
關聯,聚合,組合,泛化,依賴,實現
- 關聯
關聯用於描述類之間的一種關係,表示類之間有聯繫,或者在邏輯上、物理上有組合、聚合的關係。關聯關係是一種比較寬泛的描述。對於聚合和組合,其實也是屬於關聯,只是從不同角度出發而已。
- 單向關聯
單向關聯表現爲單向的關係。
- 雙向關聯
關聯關係是雙向的,常見的例子:顧客與(即購買)商品,學生與老師,課程與學生
- 自關聯
-
聚合
聚合是關聯關係的一種特例,它體現的是整體與部分的關係,是has-a的關係,此時整體與部分之間是可分離的,即沒有了整體,局部也可單獨存在。就比如我們航母戰鬥羣:驅逐艦,巡洋艦,護衛艦,航空母艦等。在UML類圖設計中,聚合關係以空心菱形加實線箭頭表示。具體如圖所示:
-
組合
是一種contains-a的關係,部分不能脫離整體存在。這是一種比聚合更強的關係,又稱強聚合。整體的生命週期即爲組成部分的生命週期。例如:人和人的構成部分大腦,心臟等。在UML類圖設計中,組合關係以實心菱形加實線箭頭表示。 具體如圖所示:
-
泛化(繼承)
泛化關係是類元的一般描述和具體描述之間的關係,具體描述建立在一般描述的基礎之上,並對其進行了擴展。具體描述完全擁有一般描述的特性、成員和關係, 並且包含補充的信息。在Java中用“extend”來表示此關係。舉個計算機的例子來說:馮諾依曼結構是最初的計算機結構,無論是個人計算機,服務器,還是超級計算機,都具有該特性,並在此特性上進行了擴展。
UML圖中實現泛化管理的描述,在類圖中使用帶空心三角箭頭的實線表示,箭頭從子類、子接口指向父類、父接口。具體如圖所示:
-
依賴
類A的實現需要引用類B,這就是依賴,這種使用關係是具有偶然性的、臨時性的、非常弱的,而B類的變化會影響到A,則A與B存在依賴關係,依賴關係是弱的關聯關係。例如:人依賴計算機去做軟件開發。在UML類圖設計中,依賴關係用由類A指向類B的帶箭頭虛線表示。具體如圖所示:
- 實現
實現指的是一個class類實現interface接口(可以是多個)的功能,實現是類與接口之間最常見的關係。在類圖中使用帶空心三角箭頭的虛線表示,箭頭從實現類指向接口。具體如圖所示: