1. 程式人生 > >UML中的六種關係

UML中的六種關係

一 UML中的幾種關係
在這裡插入圖片描述

(1)關聯關係

關聯關係表示類與類之間的連線,它使得一個類知道另外一個類的屬性和方法。

關聯關係可以使用單箭頭表示單向關聯,使用雙箭頭或者不使用箭頭表示雙向關聯。
在這裡插入圖片描述

(2) 聚合關係

聚合時關聯關係的特例,是強的關聯關係,聚合是整個與個體的關係,即has-a關係,此時整體和部分是可以分離的,他們具有各自生命週期,部分可以屬於多個物件,也可以被多個物件共享;比如計算機和CPU,公司和員工的關係;在程式碼層面聚合和關聯是一致的,只能從語義上區分。

在這裡插入圖片描述

(3)組合關係
組合也是關聯關係的一種特例,體現的時一種contain-a關係,比聚合更強,是一種強聚合關係。它同樣體現整體和部分的關係,但此時整體與部分是不可分的,整體生命週期的結束也意味著部分生命週期的結束,反之亦然。比如大腦和人類。

組合與聚合幾乎完全相同,唯一區別就是對於組合,“部分”不同脫離“整體”單獨存在,其生命週期應該是一致的。
在這裡插入圖片描述

(4)泛化關係

泛化關係是指一個類(子類 子介面)繼承另外一個類(稱為父類 父介面)的功能,並可以增加它自己新功能的能力,繼承時類與類或者介面與介面最常見的關係。

在這裡插入圖片描述

(5)實現關係

實現是指一個class實現interface介面(一個或者多個),表示類具備了某種能力,實現是類與介面中最常見的關係。

yi在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181204164358290.png)

(6)依賴關係

依賴關係也是表示類與類之間的連線,表示一個類依賴與另外一個類的定義,依賴關係是單向 。簡單理解就是類A使用到了類B,這種依賴具有偶然性,臨時性,是非常弱的關係。但是類B的變化會影響到類A。舉個例子,如某人要過河,則人與船的關係就是依賴,人過河之後,與船的關係就解除了,因此是一種弱連線。
在這裡插入圖片描述

總結:
主要是關聯關係的細化需要注意強弱 由弱到強分別是 依賴<關聯<聚合<組合。