UML 類圖學(xué)習(xí)筆記

平時(shí)看代碼時(shí),特別是復(fù)雜的 app 類和類之間的關(guān)系錯(cuò)綜復(fù)雜,想要理清楚他們之間的關(guān)系,往往是非常燒腦的。不過(guò)通過(guò)
使用 UML 圖就可以達(dá)到事半功倍的效果。

UML 圖

在 UML 圖中,使用一個(gè)矩形加兩根橫線表示一個(gè)類。如下圖所示

圖1: UML 圖
  • 第一行: 類名
  • 第二行: 屬性
  • 第三行: 方法
  • + : public
  • - : private
  • # : protected

類的屬性表示

格式:可見(jiàn)性 名稱 :類型 [ = 缺省值]

java : public int startIndex = -1

UML  : + startIndex :int  =-1  

類的方法表示

格式:可見(jiàn)性 名稱(參數(shù)列表) [ : 返回類型]

栗子 無(wú)參數(shù):
    java : public void action ()
    UML  : + action()  :void
    
栗子 有參數(shù):
    java : public void action1 (String params)
    UML  : + action1(String params)  :void
    

類之間的關(guān)系

關(guān)聯(lián)關(guān)系

  1. 單向關(guān)聯(lián)

單向關(guān)聯(lián)用一個(gè)帶箭頭的直線表示,表示每個(gè)教室都有學(xué)生

圖2 :?jiǎn)蜗蜿P(guān)聯(lián)
  1. 雙向關(guān)聯(lián)

雙向關(guān)聯(lián)就是雙方各自持有對(duì)方類型的成員變量。在UML類圖中,雙向關(guān)聯(lián)用一個(gè)不帶箭頭的直線表示。

圖3 :雙向關(guān)聯(lián)
  1. 自關(guān)聯(lián)

自關(guān)聯(lián)在UML類圖中用一個(gè)帶有箭頭且指向自身的直線表示。上圖的意思就是Node類包含類型為Node的成員變量,也就是“自己包含自己”。

圖4 :自關(guān)聯(lián)

聚合關(guān)系

圖5:聚合關(guān)系

上圖中的Car類與Engine類就是聚合關(guān)系(Car類中包含一個(gè)Engine類型的成員變量)。由上圖我們可以看到,UML中聚合關(guān)系用帶空心菱形和箭頭的直線表示。聚合關(guān)系強(qiáng)調(diào)是“整體”包含“部分”,但是“部分”可以脫離“整體”而單獨(dú)存在。比如上圖中汽車(chē)包含了發(fā)動(dòng)機(jī),而發(fā)動(dòng)機(jī)脫離了汽車(chē)也能單獨(dú)存在。

組合關(guān)系

圖6:組合關(guān)系

組合關(guān)系與聚合關(guān)系見(jiàn)得最大不同在于:這里的“部分”脫離了“整體”便不復(fù)存在。顯然眼睛不能脫離人類而存在。

依賴關(guān)系

圖7:依賴關(guān)系

在UML類圖中,依賴關(guān)系用一條帶有箭頭的虛線表示。

繼承關(guān)系

圖8:繼承關(guān)系

繼承關(guān)系對(duì)應(yīng)的是extend關(guān)鍵字,在UML類圖中用帶空心三角形的直線表示。

接口關(guān)系

圖9:接口關(guān)系

這種關(guān)系對(duì)應(yīng)implement關(guān)鍵字,在UML類圖中用帶空心三角形的虛線表示。

到這里我們就能基本看懂和繪制 UML 圖啦。

歡迎移步到小弟的 Blog,有更多意想不到的干貨哦!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容