UML圖中類之間的關(guān)系(iOS)

  • 在UML類圖中常見的有以下幾種關(guān)系: 泛化(Generalization)實現(xiàn)(Realization)、組合(Composition)、聚合(Aggregation)、關(guān)聯(lián)(Association)、依賴(Dependency)
  • 各種關(guān)系的強弱順序:
      泛化 = 實現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴

1、泛化(Generalization)關(guān)系

  • 關(guān)系簡述:

    • is-a關(guān)系。
    • 泛化關(guān)系是一種繼承關(guān)系,用于描述父類與子類之間的關(guān)系。例如:學(xué)生屬于人類,他即有學(xué)生的特性也有人類的共性。
  • 關(guān)系圖形:

    • 帶空心三角箭頭的實線,箭頭指向父類。
      泛化關(guān)系

2、實現(xiàn)(Realization)關(guān)系

  • 關(guān)系簡述

    • 實現(xiàn)關(guān)系是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實現(xiàn),在這種關(guān)系中,類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作
  • 關(guān)系圖形

    • 帶空心三角箭頭的虛線,箭頭指向接口。
      實現(xiàn)關(guān)系

3、組合(Composition)關(guān)系

  • 關(guān)系簡述:

    • contains-a關(guān)系。
    • 整體與部分的關(guān)系,但是整體與部分不可以分開。
    • 組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之間具有同生共死的關(guān)系。
  • 關(guān)系圖形:

    • 帶實心菱形的直線,菱形指向整體。
      組合關(guān)系

4、聚合(Aggregation)關(guān)系

  • 關(guān)系簡述:
    • has-a關(guān)系。
    • 整體和部分的關(guān)系,整體與部分可以分開。
    • 他們可以具有各自的生命周期。
  • 關(guān)系圖形:
    • 帶空心菱形的直線,菱形指向整體。
      聚合關(guān)系

5、關(guān)聯(lián)(Association)關(guān)系

  • 關(guān)系簡述:

    • 一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法,通常將一個類的對象作為另一個類的屬性。
    • 分為單向關(guān)聯(lián)、雙向關(guān)聯(lián)。
    • 關(guān)聯(lián)有兩個端點,在每個端點可以有一個基數(shù),表示這個關(guān)聯(lián)的類可以有幾個實例。
  • 常見的基數(shù)及含義:

    • 0..1表示0 或一個實例。
    • 0..*表示對實例的數(shù)目沒有限制。
    • 1表示只能有一個實例。
    • 1..*表示至少有一個實例。
  • 關(guān)系圖形:

    • 帶普通箭頭的實心線,指向被擁有者。
    • 雙箭頭或不使用箭頭表示雙向關(guān)聯(lián)。
    • 單箭頭表示單向關(guān)聯(lián)。
      關(guān)聯(lián)關(guān)系

6、依賴(dependency)關(guān)系

  • 關(guān)系簡述:

    • 是一種使用關(guān)系,表示一個類依賴于另一個類的定義。
    • 依賴關(guān)系總是單向的 ??梢院唵蔚睦斫?,一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A類;
  • 代碼提現(xiàn):

    • 局部變量、方法中的參數(shù)和對靜態(tài)方法的調(diào)用。
  • 關(guān)系圖形:

    • 依賴關(guān)系用帶普通箭頭的虛線表示,由依賴的一方指向被依賴的一方。
      依賴關(guān)系

組合、聚合、關(guān)聯(lián)、依賴的總結(jié)與區(qū)別

  • 組合關(guān)系是關(guān)聯(lián)關(guān)系的一種特例,這種關(guān)系比聚合更強,也稱為強聚合;整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;例如:人與人的頭和身體;

  • 聚合關(guān)系也是關(guān)聯(lián)關(guān)系的一種特例, 屬于強的關(guān)聯(lián)關(guān)系;整體與部分之間是可分離的,他們可以具有各自的生命周期。例如:電腦與CPU和鍵盤;

  • 關(guān)聯(lián)關(guān)系屬于一種強依賴關(guān)系,不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的, 而聚合關(guān)系中雙方的關(guān)系是不平等的,即:has-a。

  • 依賴關(guān)系是一種使用關(guān)系,單向;這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的。

SDWebImage的UML類圖

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

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