快速讀懂UML類圖繪製規範

架構師或者項目經理可能經常需要繪製UML類圖,但是很多人卻繪製的很不規範,其實UML針對Java是有專業規範存在的,下面開始詳解

一.類屬性描述:

在UML類圖中,類使用包含類名、屬性(field) 和方法(method) 且帶有分割線的矩形來表示,比如下圖表示一個NoticeAction類,它包含notice和noticeService這2個屬性,以及saveNotice()等方法。

那麼屬性/方法名稱前加的加號和減號是什麼意思呢?它們表示了這個屬性或方法的可見性,UML類圖中表示可見性的符號有三種:

· + :表示public

· - :表示private

· #:表示protected(friendly也歸入這類)

 

二.類與類之間關係描述:

1.單向關聯關係

我們可以看到,在UML類圖中單向關聯用一個帶箭頭的直線表示。上圖表示每個顧客都有一個地址,這通過讓Customer類持有一個類型爲Address的成員變量類實現。

 

2.雙向關聯關係

從上圖中我們很容易看出,所謂的雙向關聯就是雙方各自持有對方類型的成員變量。在UML類圖中,雙向關聯用一個不帶箭頭的直線表示。上圖中在Customer類中維護一個Product[]數組,表示一個顧客購買了那些產品;在Product類中維護一個Customer類型的成員變量表示這個產品被哪個顧客所購買。

 

3.自關聯關係

自關聯在UML類圖中用一個帶有箭頭且指向自身的直線表示。上圖的意思就是Node類包含類型爲Node的成員變量,也就是“自己包含自己”。

 

4.聚合關係

上圖中的Car類與Engine類就是聚合關係(Car類中包含一個Engine類型的成員變量)。由上圖我們可以看到,UML中聚合關係用帶空心菱形和箭頭的直線表示。聚合關係強調是“整體”包含“部分”,但是“部分”可以脫離“整體”而單獨存在。比如上圖中汽車包含了發動機,而發動機脫離了汽車也能單獨存在。

 

5.組合關係

組合關係與聚合關係見得最大不同在於:這裏的“部分”脫離了“整體”便不復存在,顯然嘴是頭的一部分且不能脫離了頭而單獨存在。在UML類圖中,組合關係用一個帶實心菱形和箭頭的直線表示。

 

6.依賴關係

從上圖我們可以看到,Driver的drive方法只有傳入了一個Car對象才能發揮作用,因此我們說Driver類依賴於Car類。在UML類圖中,依賴關係用一條帶有箭頭的虛線表示。

 

7.繼承關係

繼承關係對應的是extend關鍵字,在UML類圖中用帶空心三角形的直線表示,如下圖所示中,Student類與Teacher類繼承了Person類。

 

8.實現關係

這種關係對應implement關鍵字,在UML類圖中用帶空心三角形的虛線表示。如下圖中,Car類與Ship類都實現了Vehicle接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章