UML類圖以及各種類之間的關係
阿新 • • 發佈:2018-12-25
每次在閱讀或者畫UML 圖的時候,總是對各種類之間的關係區分的不是很清楚,最近在看《大話設計模式》,開篇的介紹非常詳細易懂,趕緊整理一下,便於自己記憶。
1. 繼承關係
繼承關係表示一個類派生自另外一個類,用來實現多型。使用實線的空心三角形表示。下圖所示表示 Bird 類 繼承 Animal 類。
2. 介面實現
介面實現類似於繼承,使用虛線的空心三角形箭頭表示
3.關聯
當一個類“知道”另外一個類時,使用關聯(association),在類的定義中表現形式為一個類是另外一個類的成員變數。關聯和合成(組合)有細微的區別,下圖所示的程式碼中,成員變數 climate 並沒有在建構函式中建立例項,也就是說 climate 的生命週期要小於 Bird 的生命週期,climate並不是嚴格的不可分割的部分。
4. 合成 (組合, Composition)
合成是一種強的擁有關係,體現了嚴格的整體和部分的關係,部分 和 整體 的生命週期是相同的。例如鳥擁有翅膀,翅膀是鳥不可分割的部分,使用合成關係,如下圖所示。
5. 聚合(Aggregation)
聚合表示一種 弱 的擁有關係,體現的是A物件可以包含B物件,但是B物件不是A物件的一部分。 聚合也體現了部分雨整體的關係,但是相對於組合而言,聚合並不要求部分 和 整體 的生命週期相同。例如大雁是雁群的一部分,但是雁群不是大雁的一部分,我們說,雁群和大雁就是一種聚合關係
6. 依賴關係
依賴表示的是類與類之間的連線,表示一個類依賴於另一個類的定義,其中一個類的變化將影響另外一個類。例如如果
UML 類圖並不難,但如果希望能夠通過UML類圖快速的梳理程式結構,還需要對各種關係有充分的理解。希望小小的整理能對大家有所幫助。