UML 類圖間的關系

前言:UML的構造塊包含以下3種

(1) 事物(4種):結構事物,行為事物,分組事物,注釋事物
(2) 關系(4種):泛化關系,實現關系,依賴關系,關聯關系
(3) 圖(10種):用例圖,類圖,對象圖,包圖,組件圖,部署圖,狀態圖,活動圖,序列圖,協作圖
其中:
事物是對模型中最具代表性的成分的抽象;
關系把事物結合在一起;
圖聚集了相關的事物。

(一)在UML類圖中常見的幾種關系

  • 泛化(Generalization)
  • 實現(Realization)
  • 關聯(Association)
  • 聚合(Aggregation)
  • **組合 (Composition) **
  • **依賴 (Dependency) **

(二)關系的大致介紹

1. 泛化(Generalization)是一種 繼承( is kind of) 關系,表示一般與特殊的關系,箭頭指向父類

2. 實現(Realization)是一種 類與接口 的關系,表示類是接口所有特征和行為的實現;箭頭指向接口

3.關聯(Association)是一種 擁有 的關系,它使一個類知道另一個類的屬性和方法;指向被擁有者


  
4.聚合(Aggregation)整體與部分( has a ) 的關系,菱形頭指向整體。

5.組合(Composition)整體與部分(contains a) 的關系,菱形頭指向整體。

6.依賴(Dependency)是一種 使用 的關系,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴,箭頭指向被依賴元素。

(三)幾種關系的詳解

1)泛化
  • 泛化關系的三個要求:
  • 1、子類與父類應該完全一致,父類所具有的屬性、操作,子類應該都有;
  • 2、子類中除了與父類一致的信息以外,還包括額外的信息;
  • 3、可以使用父類的實例的地方,也可以使用子類的實例。
2)關聯
  • **Note: **

    • 關聯可以是雙向的、單向的、自身的。
    • 雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
  • 數字表示兩者的關系的限制,通常:

    • * ——(表示所有)
    • 1 ——(表示有且僅有一個)
    • 0... ——(表示0個或者多個)
    • 0,1 ——(表示0個或者一個)
    • n...m ——(表示n到 m個都可以)
    • m...* ——(表示至少m個)
  • 舉例:


      上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關系為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。

3)聚合
  • 舉例:

  • 車和輪胎是整體和部分的關系,輪胎離開車仍然可以存在。

  • **Note: **

  • 部分可以離開整體而單獨存在,他們可以具有各自的生命周期。

4)組合
  • 舉例:

  • 公司和部門是整體和部分的關系,沒有公司就不存在部門。

  • **Note: **

  • 部分不能離開整體而單獨存在,整體的生命周期結束也就意味著部分的生命周期結束;

  • 聚合關系表示整體與部分的關系比較弱,而組合比較強,也稱為強聚合;

  • 關聯和聚合在語法上無法區分,必須考察具體的邏輯關系。

5)關聯與依賴的關系
  • **Note: **
  • 依賴描述了對象之間的調用關系;
  • 關聯描述了對象之間的結構關系。
6)關系間的強弱順序
  • 泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
  • **Note: **
  • 依賴關系是一種比較弱的關聯;
  • 聚合是一種比較強的關聯;
  • 而組合則是一種更強的關聯,
    所以籠統的來區分的話,實際上這四種關系、都是關聯關系,因此在不確定的情況下,可以以關聯關系來描述它們。

(四)舉個例子

下面這張UML圖,比較形象地展示了類圖之間的各種關系

把這個圖走一遍的話,就可以理解這幾種關系啦!~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容

  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,304評論 0 14
  • 在畫類圖的時候,理清類和類之間的關系是重點。類的關系有泛化(Generalization)、實現(Realizat...
    趙宇_ios閱讀 689評論 0 1
  • 忘記了uml類圖連線之間的關系,記錄一下。 1. 關聯關系 關聯(Association)關系是類與類之間最常用的...
    cutieagain閱讀 1,852評論 0 2
  • UML類圖用來定義系統中的類,包括描述類的結構和類之間的關系。類圖的主要作用于描述系統的靜態結構。先看一張圖(圖片...
    Josaber閱讀 6,100評論 0 5
  • 1. 泛化(Generalization) 泛化(Generalization)關系也就是繼承關系,用于描述父類與...
    LeeLeCoder閱讀 800評論 0 1