UML六種關係

2021-09-24 20:01:31 字數 2429 閱讀 6667

概念:泛化是一種一般與特殊、一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動物的子類。

表示方法:空心三角形箭頭的實線,子類指向父類

實現概念:實現是一種類與介面的關係,表示類是介面所有特徵和行為的實現,在程式中一般通過類實現介面來描述

表示方法:空心三角形箭頭的虛線,實現類指向介面

依賴概念:是一種使用的關係,即乙個類的實現需要另乙個類的協助,所以要盡量不使用雙向的互相依賴,在程式中一般表現為類a中的方法需要類b的例項作為其引數或者變數,而類a本身並不需要引用類b的例項作為其成員變數。

表示方法:虛線箭頭,類a指向類b。

關聯概念:表示類與類之間的聯接,它使乙個類知道另乙個類的屬性和方法,這種關係比依賴更強、不存在依賴關係的偶然性、關係也不是臨時性的,一般是長期性的,在程式中被關聯類b以類屬性的形式出現在關聯類a中,也可能是關聯類a引用了乙個型別為被關聯類b的全域性變數

表示方法:實線箭頭,類a指向類b

聚合概念:聚合關聯關係的一種特例,是強的關聯關係。聚合是整體和個體之間的關係,即has-a的關係,整體與個體可以具有各自的生命週期,部分可以屬於多個整體物件,也可以為多個整體物件共享。程式中聚合和關聯關係是一致的,只能從語義級別來區分;

表示方法:尾部為空心菱形的實線箭頭(也可以沒箭頭),類a指向類b

組合概念:組合也是關聯關係的一種特例。組合是一種整體與部分的關係,即contains-a的關係,比聚合更強。部分與整體的生命週期一致,整體的生命週期結束也就意味著部分的生命週期結束,組合關係不能共享。程式中組合和關聯關係是一致的,只能從語義級別來區分。

表示方法:尾部為實心菱形的實現箭頭(也可以沒箭頭),類a指向類b

泛化(generalization)

【泛化關係】:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。

【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

2. 實現(realization)

【實現關係】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現.

【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面

3. 關聯(association)

【關聯關係】:是一種擁有的關係,它使乙個類知道另乙個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有乙個箭頭。

【**體現】:成員變數

【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者

4. 聚合(aggregation)

【聚合關係】:是整體與部分的關係,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在。

聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。

【**體現】:成員變數

【箭頭及指向】:帶空心菱形的實心線,菱形指向整體

5. 組合(composition)

【組合關係】:是整體與部分的關係,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。

組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期。

【**體現】:成員變數

【箭頭及指向】:帶實心菱形的實線,菱形指向整體

UML六種關係

大話設計模式的學習已經進行了好長的一段時間,通過學習設計模式,發現類圖非常重要,當然類圖的關係依然重要,那麼接下來就再來學習一下類圖的關係。首先就從我覺得見的最多的來分享吧,第乙個就是泛化。特點 三角箭頭 實線 箭頭指的方向為父類 特點 三角箭頭 虛線 箭頭指向介面 是一種使用關係,即乙個類的實線需...

UML的六種關係

uml定義的關係主要有 泛化 實現 依賴 關聯 聚合 組合,這六種關係緊密程度依次加強,分別看一下 概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動...

OOP UML六種關係

uml定義的關係主要有 泛化 實現 依賴 關聯 聚合 組合,這六種關係緊密程度依次加強,分別看一下 概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動...