通俗易懂的UML類圖


背景

小明去動物園看動物,來簡述整個UML的認知過程

基礎定義

​ 根據上面事實,我們將了解UML類途中的幾種關系:Inheritance (繼承) ,Realization(實現),Association(關聯),Aggregation(聚合),Composition(組合),Dependency(依賴)

UML類的基本認識

在開始之前我們先認識下UML類的基本特征

對於屬性和方法前面的修飾符 - + 等,具體是一下含義

  • - private 任何其他類和子類都不可訪問
  • + public 可以被任何類進行訪問
  • #protected 相同類或其子類存取
  • ~ package/default 同一個包中

繼承

有了上面對類的基本理解,我們再看下不同實體之間的關系。

Inheritance 繼承關系

  • 作用:它指定了子類如何特化父類的所有特征和行為,例如:老虎是動物的一種

  • 箭頭指向:帶三角箭頭的實線,箭頭指向父類,符號用下面的表示

    假設動物園有花豹、老虎、長頸鹿,分別對應Leopard、 Tiger、 Giraffe,他們有自己的名字、編號、年齡已經他們都可以吃東西,可以抽象為三個實體類

    三個實體我們可以抽出一個共用的Animal父類,三個子類分別繼承 name id age.. 屬性和方法,可以用UML繼承關系表示,如下

    另外,對於抽象類,我們可以類名變斜體Animal;或者類名加 < >

關聯

Association 關聯關系

  • 關聯關系:關聯關系比較簡單,比如東北虎會捕食野豬作為食物,那么老虎和野豬就是關聯關系

  • 箭頭指向:關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭,帶普通箭頭的實心線,指向被擁有者

聚合

Aggregation 聚合關系

  • 作用:是整體與部分的關系,並且部分可以存在於整體之外,如一群烏龜和一只烏龜之間的關系

  • 箭頭指向:帶空心菱形的實心線,菱形指向整體

    比如動物園中的一群烏龜,我們可以定義為Creep類,他與烏龜有關系,並且仍然可以獨立存在

組合

Composition 組合關系

  • 組合關系:是整體與部分的關系,但是他是比聚合關系還要強的關系,要求普通聚合關系的整體部分的聲明周期代表部分的生命周期

  • 箭頭與方向:帶實心菱形的實線,菱形指向整體

    比如動物園的 Visitor Center (訪客中心),會有 Lobby (大廳) 和 Bathroom (廁所), Lobby 以及 Bathroom 與 VC之間就是組合關系,現實世界里,Lobby不可能脫離VC單獨存在,Bathroom也不可能脫離VC單獨存在

    另外,VC和lobby之間,VC和bathroom之間在數量級上,也有對應的一對一、一對多等關系。

    eg:

    1. 0..1 zero to one
    2. n specific number
    3. 0..* zero to many
    4. 1..* one to many
    5. m..n specific number range

    因此,一個VC中對應一個lobby,對應至少一個bathroom

依賴

Dependency 依賴關系

  • 依賴關系:是一種使用關系,盡量不要使用雙向依賴

  • 箭頭與方向:帶箭頭的虛線,指向被使用者

    zookeeper (動物圓管理員) 使用computer(計算機)系統管理每個屋子的溫度

總結

總結以上的關系強度 繼承>組合>聚合>關聯>依賴,我們可以看下全部的關系圖。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM