UML類圖

UML類圖

類圖是軟件工程的統(tǒng)一建模語言一種靜態(tài)結(jié)構(gòu)圖,描述了系統(tǒng)的類集合,類的屬性和類之間的關(guān)系。在學(xué)習(xí)面向?qū)ο缶幊袒蛘咴O(shè)計模式時,免不了是要和類圖打交道。

一、工具

推薦Microsoft Visio,理由是精美,好用。當(dāng)然也有其他流程圖軟件,全看個人喜好。 如何使用?Visio搜索UML類圖模板

二、箭頭符號所代表的含義

Visio.png

三、類的成員

class.png
  • 最上面是類名稱
  • 中間部分包含類的屬性
  • 底部部分包含類的方法
  1. + 公共
  2. - 私有
  3. # 保護(hù)
  4. ~ 包
  5. static 靜態(tài)

四、類與類的關(guān)系

UML_Class.png

依賴關(guān)系

依賴關(guān)系(Dependency)可以理解為一個類A使用到了另一個類B,類B的變化會影響它的依賴者類A,用帶燕尾箭頭的虛線表示

泛化關(guān)系

泛化(Generalization),即繼承的反方向,指的是一個類(稱為父類、父接口)具有另外的一個(或一些)類(稱為子類、子接口)的共有功能。子類可視為其父類的特例,并可以增加新功能。用帶空心三角形箭頭的實線表示。

實現(xiàn)關(guān)系

實現(xiàn)(Realization)指的是一個class類實現(xiàn)interface接口(可以是多個)的功能;用帶空心三角形箭頭的虛線表示。

聚合關(guān)系

聚合(Aggregate)是表示整體與部分的一類特殊的關(guān)聯(lián)關(guān)系,是“弱”的包含(" ... owns a ..." )關(guān)系,成分類可以不依靠聚合類而單獨存在,可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享(sharable)。例如,大雁與雁群。再例如教授與課程就是一種聚合關(guān)系。又例如圖書館包含(owns a) 學(xué)生和書籍。即使沒有圖書館,學(xué)生亦可以存在。

組合關(guān)系

組成(Composition)關(guān)系,是一類“強”的整體與部分的包含關(guān)系(" ... is a part of ...")。成分類必須依靠合成類而存在。整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束。合成類別完全擁有成分類別,負(fù)責(zé)創(chuàng)建、銷毀成分類別。例如汽車與化油器,又例如公司與公司部門就是一種組成關(guān)系。圖形以實心的菱形箭尾與實線表示。

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

最常見的時雙向關(guān)聯(lián)和單向關(guān)聯(lián)。例如人訂閱了一份報紙,就是雙向關(guān)聯(lián)。某個對象會長期的持有另一個對象的引用,關(guān)聯(lián)的兩個對象彼此間沒有任何強制性的約束,只要二者同意,可以隨時解除關(guān)系或是進(jìn)行關(guān)聯(lián),它們在生命期問題上沒有任何約定。被關(guān)聯(lián)的對象還可以再被別的對象關(guān)聯(lián),所以關(guān)聯(lián)是可以共享的。 在代碼層面上,被關(guān)聯(lián)類以類屬性的形式出現(xiàn)在關(guān)聯(lián)類中,也可能是關(guān)聯(lián)類引用了一個類型為被關(guān)聯(lián)類的全局變量。(箭頭從使用類指向被關(guān)聯(lián)的類)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,345評論 0 14
  • 忘記了uml類圖連線之間的關(guān)系,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,865評論 0 2
  • 在畫類圖的時候,理清類和類之間的關(guān)系是重點。類的關(guān)系有泛化(Generalization)、實現(xiàn)(Realizat...
    趙宇_ios閱讀 691評論 0 1
  • 類的理解 類(Class)封裝了數(shù)據(jù)和行為,是面向?qū)ο蟮闹匾M成部分,它是具有相同屬性、操作、關(guān)系的對象集合的總稱...
    鄭知魚閱讀 1,387評論 0 1
  • 為何而來 去往何處 為之奮斗 為之流離
    虛子游閱讀 237評論 0 1