UML中表示類與類的關係

UML(Unified Modeling Language), 又稱統一建模語言或標準建模語言,它是一個支持模型化和軟件系統開發的圖形化語言,爲軟件開發的所有階段提供模型化和可視化支持,

可用於多種類型軟件系統開發建模的各個階段。我們可以用 UML 圖例來表示類與類之間的各種關係。

類的層次結構代表類與類之間的關係,類的關係有很多種,包括泛化、依賴、關聯、聚合和組合。

這些關係在大的類別上還可分爲兩種:橫向關係和縱向關係,縱向關係就是泛化關係,而橫向關係就是剩下的 4 種,它們的強弱關係:依賴 < 關聯 < 聚合 < 組合。理解這些類的關係,並應用於類的層次結構設計中,有助於優化代碼組織結構。

  1. 泛化
    在這裏插入圖片描述
  • 泛化關係就是繼承,表示一般與特殊的關係,即“一般”元素是“特殊”元素的泛化。在繼承中,一般類就是父類,特殊類就是子類。

  • 它們之間是“is a”的關係。

  • 如:一個 Cat 類繼承 Animal 類,也就是說 Cat is an Animal。在 UML 類圖設計中,繼承用一條帶空心三角箭頭的實線表示,從子類指向父類,或者子接口指向父接口

  1. 依賴
    在這裏插入圖片描述
  • 表示一個元素以某種方式依賴於另一種元素。依賴就是一個類 A 使用到了另一個類B,而這種使用關係是具有偶然性的、臨時性的、非常弱的,但是類 B 的變化會影響到類 A。

  • 它們之間是“use a”的關係。

  • 依賴的例子有:一個類把另一個類的對象作爲參數,一個類訪問另一個類的全局變量,或者一個類調用另一個類的類操作。

  • 比如某人要過河,需要借用一條船,此時人與船之間的關係就是依賴。表現在代碼層面,爲類 B 作爲參數被類 A 在某個 method 方法中使用。在 UML 類圖設計中,依賴關係用由類 A 指向類 B 的帶箭頭虛線表示。

  1. 關聯
    在這裏插入圖片描述
  • 關聯體現的是兩個類之間一種強依賴關係,這種關係比依賴更強、不存在依賴關係的偶然性、關係也不是臨時性的,一般是長期性的,而且雙方的關係一般是平等的。關聯可以是單向、雙向的。

  • 比如老師和學生是雙向關聯,老師有多名學生,學生也可能有多名老師。學生跟學生學號之間是單向關聯,一個學生只能對應一個唯一的學號。在 UML 類圖設計中, 雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。

  1. 聚合

在這裏插入圖片描述

  • 聚合關係是關聯關係的一種,是強的關聯關係,它體現的是整體與部分的關係 ,且部分可以離開整體而單獨存在;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。

  • 它們之間是“use a”的關係。

  • 此時整體與部分之間是可分離的,它們可以具有各自的生命週期,部分可以屬於多個整體對象,也可以爲多個整體對象共享。

  • 在 UML 類圖設計中,聚合關係以空心菱形加實線表示。如學校有很多老師。

  1. 組合
    在這裏插入圖片描述
  • 是整體與部分的關係,是比聚合關係還要強的關係,但此時整體與部分是不可分的,整體的生命週期結束也就意味着部分的生命週期結束,如公司和部門是整體和部分的關係, 沒有公司就不存在部門。

  • 它體現的是一種“contains-a”的關係。

  • 在 UML 類圖設計中,組合關係以實心菱形加實線表示。

參考:慕課網-UML中表示類與類的關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章