UML圖之類圖

最近在學(xué)習(xí)領(lǐng)域驅(qū)動設(shè)計(jì),重新溫習(xí)了一下UML圖。
定義:
UML是一種面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說明、可視化和編制文檔的一種標(biāo)準(zhǔn)語言,是非專利的第三代建模和規(guī)約語言,UML使用面向?qū)ο蟮慕9ぞ?,但?dú)立于任何程序設(shè)計(jì)語言

UML繪圖規(guī)范:

image.png

事物(主要介紹類class,接口interface,用例usecase,包package)
事物之間的關(guān)系:

  • 關(guān)聯(lián)關(guān)系
    箭頭指向被擁有者(單向關(guān)聯(lián))


    箭頭指向被擁有者

    不用箭頭的實(shí)線(雙向關(guān)聯(lián),例如兩個(gè)類相互訪問)


    不用箭頭的實(shí)線
  • 聚合關(guān)系
    是整體與部分的關(guān)系(如學(xué)生和學(xué)生會)
    用空心菱形的實(shí)線表示,菱形指向整體,箭頭指向個(gè)體


    聚合關(guān)系
  • 組合關(guān)系
    也是整體與部分的關(guān)系(整體和個(gè)體需要有相同的生命周期,比如人的身體和手的關(guān)系),組合比聚合更加嚴(yán)格
    用實(shí)心菱形的實(shí)線表示,菱形指向整體,箭頭指向個(gè)體


    組合關(guān)系

-泛化關(guān)系
表示一個(gè)更泛化的元素和一個(gè)具體元素之間的關(guān)系,與繼承是同一個(gè)概念
用空心箭頭的實(shí)線表示


泛化關(guān)系
  • 實(shí)現(xiàn)關(guān)系
    類和接口之間的關(guān)系,類實(shí)現(xiàn)接口
    用空心箭頭的虛線表示,箭頭指向接口


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

-依賴關(guān)系
如果一個(gè)類的改動會影響到另一個(gè)類,則這兩個(gè)類存在依賴關(guān)系,一般依賴關(guān)系是單向的
用虛線的單向普通箭頭表示,箭頭指向被依賴者


依賴關(guān)系

關(guān)系指向整理
類圖

類關(guān)系記憶技巧
箭頭方向:從子類指向父類。
記憶技巧:

  • 1、定義子類是需要通過 extends 關(guān)鍵字指定父類;
  • 2、子類一定是知道父類定義的,但父類并不知道子類的定義;
  • 3、只有知道對方信息時(shí)才能指向?qū)Ψ?
  • 4、所以箭頭的方向是從子類指向父類。

繼承實(shí)現(xiàn):用線條連接兩個(gè)類。
記憶技巧:

  • 1、空心三角箭頭表示繼承或?qū)崿F(xiàn)。
  • 2、實(shí)線表示繼承,是 is-a 的關(guān)系,表示擴(kuò)展,不虛,很結(jié)實(shí);
  • 3、虛線表示實(shí)現(xiàn),虛線代表“虛”無實(shí)體。

關(guān)聯(lián)依賴:用線條連接兩個(gè)類。
記憶技巧:

  • 1、虛線表示依賴關(guān)系:臨時(shí)用一下,若即若離,虛無縹緲,若有若無; 表示一種使用關(guān)系,一個(gè)類需要借助另一類來實(shí)現(xiàn)功能;
    一般是一個(gè)類將另一個(gè)類作為參數(shù)使用,或作為返回值。
  • 2、實(shí)線表示關(guān)聯(lián)關(guān)系:關(guān)系穩(wěn)定,實(shí)打?qū)嵉年P(guān)系,鐵哥們;
    表示一個(gè)類對象和另一個(gè)類對象有關(guān)聯(lián);
    通常是一個(gè)類中有另一個(gè)類對象作為屬性。

組合聚合:用菱形表示。
記憶技巧:

  • 1、菱形就是像是一個(gè)盛東西的器皿(比如盤子);
  • 2、聚合:空心菱形,代表空器皿里可以放很多相同的東西,
    聚集在一起(箭頭方向所指的類); 整體和局部的關(guān)系,兩者有獨(dú)立的生命周期,是 has-a 的關(guān)系; 弱關(guān)系,消極的詞:弱-空。
  • 3、組合:實(shí)心菱形,代表器皿里已經(jīng)有實(shí)體結(jié)構(gòu)的存在,生死與共; 整體與局部的關(guān)系,和聚合關(guān)系對比,關(guān)系更加強(qiáng)烈; 兩者具有相同的生命周期,contains-a 的關(guān)系; 強(qiáng)關(guān)系,積極的詞:強(qiáng)-滿。
    注意:UML 類關(guān)系圖中,沒有實(shí)心箭頭。
    例子:


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

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

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