1. 程式人生 > >UML類圖以及各種類之間的關係

UML類圖以及各種類之間的關係

每次在閱讀或者畫UML 圖的時候,總是對各種類之間的關係區分的不是很清楚,最近在看《大話設計模式》,開篇的介紹非常詳細易懂,趕緊整理一下,便於自己記憶。

1. 繼承關係

繼承關係表示一個類派生自另外一個類,用來實現多型。使用實線的空心三角形表示。下圖所示表示 Bird 類 繼承 Animal 類。


2. 介面實現

介面實現類似於繼承,使用虛線的空心三角形箭頭表示


3.關聯

當一個類“知道”另外一個類時,使用關聯(association),在類的定義中表現形式為一個類是另外一個類的成員變數。關聯和合成(組合)有細微的區別,下圖所示的程式碼中,成員變數 climate 並沒有在建構函式中建立例項,也就是說 climate 的生命週期要小於 Bird 的生命週期,climate並不是嚴格的不可分割的部分。


4. 合成 (組合, Composition)

合成是一種強的擁有關係,體現了嚴格的整體和部分的關係,部分 和  整體 的生命週期是相同的。例如鳥擁有翅膀,翅膀是鳥不可分割的部分,使用合成關係,如下圖所示。


5. 聚合(Aggregation)

聚合表示一種 弱 的擁有關係,體現的是A物件可以包含B物件,但是B物件不是A物件的一部分。 聚合也體現了部分雨整體的關係,但是相對於組合而言,聚合並不要求部分 和 整體 的生命週期相同。例如大雁是雁群的一部分,但是雁群不是大雁的一部分,我們說,雁群和大雁就是一種聚合關係


6. 依賴關係

依賴表示的是類與類之間的連線,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類。例如如果

A依賴於B,則B體現為區域性變數,方法的引數、或靜態方法的呼叫。如下圖所示:


UML 類圖並不難,但如果希望能夠通過UML類圖快速的梳理程式結構,還需要對各種關係有充分的理解。希望小小的整理能對大家有所幫助。