UML六種關(guān)系

  1. 泛化:(Generalization):

    • 表示繼承關(guān)系, 表示類/接口對(duì)父類/接口的功能擴(kuò)展.
    • java語(yǔ)法中的extends, 用來(lái)擴(kuò)展父類或父接口的功能.
    • 圖形表示: 帶三角箭頭的實(shí)線, 箭頭指向父類或父接口.


      泛化關(guān)系.png
    • 代碼表示
      class Child extends Parent {}
      
  2. 實(shí)現(xiàn)(Realization):

    • 表示類實(shí)現(xiàn)接口定義的行為或功能.
    • java語(yǔ)法中的implements.
    • 圖形表示:帶三角箭頭的虛線, 箭頭指向接口.


      實(shí)現(xiàn)關(guān)系.png
    • 代碼表示
      class Plane implements Flyable{
            public void fly() {}
      }
      
  3. 依賴(Dependency):

    • 表示使用關(guān)系, A需要B的協(xié)助來(lái)完成工作形成的關(guān)系, 但是這種使用關(guān)系具有臨時(shí)性的特點(diǎn). 比如, 廚師在烹飪的時(shí)候看了一眼菜譜, 廚師"使用"了菜譜, 照著它炒完菜后,這種使用關(guān)系就結(jié)束了(臨時(shí)性).

    • java的語(yǔ)法中, 被依賴的對(duì)象/類, 以方法參數(shù), 局部變量和靜態(tài)方法調(diào)用的形式出現(xiàn).

    • 圖形表示: 因?yàn)橐蕾嚭捅灰蕾囮P(guān)系比較弱, 所以使用虛線+箭頭表示. 箭頭指向被依賴者.而且一般是單向關(guān)系.


      依賴關(guān)系.png
    • 代碼表示

        class Chef {
             public void check(Recipe r) {
                  r.showProcedure();
             }
        }  
      
  4. 關(guān)聯(lián)(Association):

    • 關(guān)聯(lián)關(guān)系,表示"擁有", 相比依賴關(guān)系的臨時(shí)性和單向性, 關(guān)聯(lián)關(guān)系具有長(zhǎng)期性, 平等性(可雙向),所以關(guān)聯(lián)表示的關(guān)系比依賴更強(qiáng). 比如現(xiàn)實(shí)生活中的夫妻, 師生等關(guān)系. 長(zhǎng)期存在并且是相互的關(guān)系. 此外關(guān)聯(lián)可以表示一對(duì)一,一對(duì)多, 多對(duì)一, 多對(duì)多等各種關(guān)系.

    • java語(yǔ)法中, 被擁有者作為擁有者的成員變量存在.

    • 圖形表示: 因?yàn)楸纫蕾囮P(guān)系更強(qiáng), 所以是實(shí)線+箭頭.雙向關(guān)聯(lián)可以省略箭頭


      關(guān)聯(lián)關(guān)系.PNG
    • 代碼表示:

        class Husband {
            private Wife wife;
            private Address address;
        }
        class Wife {
            private Husband husband;
        }
      

后面兩種關(guān)系 "聚合" 和 "組合", 都屬于關(guān)聯(lián)關(guān)系, 用來(lái)表示關(guān)聯(lián)關(guān)系中整體與部分的關(guān)系, 雖然各有特點(diǎn), 但既然都屬于關(guān)聯(lián)關(guān)系, 它們?cè)谡Z(yǔ)法上是沒(méi)有區(qū)別的, 都是用成員變量表達(dá).

  1. 聚合(Aggregation):

    • 表示"has-a"關(guān)系, 整體與部分的關(guān)系, 這種關(guān)系相對(duì)于組合弱一些, 整體與部分是可分離的. 比如, 部門與員工, 部門有許多員工, 員工離職了, 部門仍然存在,并不會(huì)受到影響, 部門解散了,員工可以去其他部門(整體與部分可分離)
    • 圖形表示: 空心菱形+實(shí)線+箭頭, 箭頭指向部分, 菱形指向整體.


      聚合關(guān)系.png
  2. 組合(Composition):

    • 表示"contains-a"的關(guān)系. 是一種組裝的關(guān)系. 并且整體與部分是不可分離的. 比起聚合限制更強(qiáng)了. 這種關(guān)系中,整體與部分的生命周期是一致的, 這個(gè)限制是非常這嚴(yán)苛的, 以至于在現(xiàn)實(shí)中很難找到符合的示例.
      ?????????但是在程序中,反而很好實(shí)現(xiàn), 因?yàn)槲覀兛梢酝耆瓶貙?duì)象的生命周期. 所以這種關(guān)系并不是對(duì)現(xiàn)實(shí)世界中某類關(guān)系的抽象, 而是具體的, 戰(zhàn)術(shù)性的邏輯工具, 設(shè)計(jì)者使用它來(lái)表達(dá)類之間的這種強(qiáng)限制.
      ?????????例如, 在現(xiàn)實(shí)中, 人體和器官(整體和部分)的生命周期并不一致. 但設(shè)計(jì)的系統(tǒng)中并不支持器官移植之類的功能, 所以器官單獨(dú)出現(xiàn)在系統(tǒng)中就沒(méi)有意義, 使用組合可以明確表達(dá)這種目的.
      ?????????這也是組合唯一的目的,表示給整體與部分的關(guān)系加一層限制,而不是直接對(duì)問(wèn)題域中的關(guān)系建模. 操作上可以先識(shí)別聚合(整體與部分)關(guān)系. 然后判斷如果部分在整體的概念之外沒(méi)有存在的意義, 就可以確定為組合.
      ?????????而在具體實(shí)現(xiàn)上, 可以將部分完全作為整體的內(nèi)部狀態(tài), 比如私有的內(nèi)部類. 這種強(qiáng)限制關(guān)系使用比較少.

    • 圖形表示: 實(shí)心菱形+ 實(shí)線+ 箭頭, 菱形指向整體, 箭頭指向部分


      組合關(guān)系.png

總結(jié)

繼承 實(shí)現(xiàn) 依賴 關(guān)聯(lián) 聚合 組合
關(guān)系含義 功能擴(kuò)展 功能實(shí)現(xiàn) 使用 擁有 整體-部分(has-a) 整體-部分(contains-a)
關(guān)系特性 - - 臨時(shí)性鸟蟹,單向性 長(zhǎng)期性,可雙向(平等性) 整體與部分可分離 整體與部分不可分離咱旱,生命周期一致
java語(yǔ)法 extends implements 方法參數(shù)扫夜,局部變量,靜態(tài)方法調(diào)用 成員變量 成員變量 成員變量
關(guān)系強(qiáng)弱 強(qiáng) 強(qiáng) 較強(qiáng) 較強(qiáng) 非常強(qiáng)
現(xiàn)實(shí)事例 父子 飛機(jī)/鳥可以飛 廚師使用菜譜仓蛆,裁判使用秒表 夫妻,師生 部門-員工 -
圖形表示
圖形指向 箭頭指向父類 箭頭指向接口 箭頭指向被使用者 指向被擁有者,可雙向 箭頭指向部分逾冬, 菱形指向整體 箭頭指向部分,菱形指向整體
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躺苦,一起剝皮案震驚了整個(gè)濱河市身腻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匹厘,老刑警劉巖嘀趟,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異愈诚,居然都是意外死亡她按,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門炕柔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酌泰,“玉大人,你說(shuō)我怎么就攤上這事匕累×晟玻” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵哩罪,是天一觀的道長(zhǎng)授霸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)际插,這世上最難降的妖魔是什么碘耳? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮框弛,結(jié)果婚禮上辛辨,老公的妹妹穿的比我還像新娘。我一直安慰自己瑟枫,他們只是感情好斗搞,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著慷妙,像睡著了一般僻焚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膝擂,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天虑啤,我揣著相機(jī)與錄音隙弛,去河邊找鬼。 笑死狞山,一個(gè)胖子當(dāng)著我的面吹牛全闷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萍启,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼总珠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了勘纯?” 一聲冷哼從身側(cè)響起局服,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屡律,沒(méi)想到半個(gè)月后腌逢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡超埋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了佳鳖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霍殴。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖系吩,靈堂內(nèi)的尸體忽然破棺而出来庭,到底是詐尸還是另有隱情,我是刑警寧澤穿挨,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布月弛,位于F島的核電站,受9級(jí)特大地震影響科盛,放射性物質(zhì)發(fā)生泄漏帽衙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一贞绵、第九天 我趴在偏房一處隱蔽的房頂上張望厉萝。 院中可真熱鬧,春花似錦榨崩、人聲如沸谴垫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翩剪。三九已至,卻和暖如春彩郊,著一層夾襖步出監(jiān)牢的瞬間前弯,已是汗流浹背蚪缀。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留博杖,地道東北人椿胯。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像剃根,于是被迫代替她去往敵國(guó)和親哩盲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,111評(píng)論 1 32
  • UML概述 UML簡(jiǎn)介 UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的...
    aron1992閱讀 518評(píng)論 0 0
  • 忘記了uml類圖連線之間的關(guān)系狈醉,記錄一下廉油。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,838評(píng)論 0 2
  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一苗傅。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,257評(píng)論 0 14
  • 之前的文章里說(shuō)過(guò),現(xiàn)在中國(guó)已在黃金增長(zhǎng)的末期逊桦。大多數(shù)的理財(cái)投入眨猎,已經(jīng)只能獲得尋常回報(bào)强经。 如何取得更好的回報(bào)睡陪? 我提...
    越女事務(wù)所閱讀 316評(píng)論 2 2