UML中定義了用例圖、類圖、時序圖、協作圖等九種。設計模式中經常會用到的是類圖。類是面向對象系統組織結構的核心,類可以說是對一組具有相同屬性、操作、關系和語義的對象的抽象。在UML中,類使用帶有分隔線的矩形表示,它包含名稱部分(Name)、屬性部分(Attribute)和操作部分(Operation)。
其中屬性的表現形式是[可見性] 屬性名:類型 [=默認值]。操作的表現形式是:[可見性] 名稱(參數列表)[:返回類型]。
詳細見下圖。

1.類圖基礎屬性
+表示public
-表示private
#表示protected
~表示default,也就是包權限
_下划線表示static
斜體表示抽象
2.類之間關系
在UML類圖中,常見的有以下幾種關系:
泛化(Generalization):帶空心三角箭頭的實線來表示,箭頭由子類指向父類
實現(Realization):帶空心的三角箭頭的虛線來表示,箭頭從實現類指向接口
關聯(Association):分為雙向關聯和單向關聯,其中,雙向關聯可以用帶兩個箭頭或者沒有箭頭的實線來表示,單向關聯用帶一個箭頭的實線來表示,箭頭從使用類指向被關聯的類,還可以再關聯線的兩端標注角色名,補充說明它們的角色。
聚合(Aggregation),用帶空心菱形的實線表示,菱形指向整體
組合(Composition):用帶實心菱形的實線來表示,菱形指向整體。
依賴(Dependency):使用帶箭頭的虛線表示,箭頭從使用類指向被依賴的類
下圖為類之間的關系在UML中的圖形表達式:
2.1泛化
泛化(Generalization)表示類與類之間的繼承關系,接口與接口之間的繼承關系,或類對接口的實現關系
(1)繼承
介紹:
繼承表示是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,並可以增加它自己的新功能的能力。
表示方法:
繼承使用空心三角形+實線表示。
示例:
鳥類繼承抽象類動物
(2)實現
實現表示一個class類實現interface接口(可以是多個)的功能。
表示方法:
使用空心三角形+虛線表示
比如:大雁需要飛行,就要實現飛()接口
2.2依賴
對於兩個相對獨立的對象,當一個對象負責構造另一個對象的實例,或者依賴另一個對象的服務時,這兩個對象之間主要體現為依賴關系。
表示方法:
依賴關系用虛線箭頭表示。
示例:
動物依賴氧氣和水。調用新陳代謝方法需要氧氣類與水類的實例作為參數
2.3關聯
對於兩個相對獨立的對象,當一個對象的實例與另一個對象的一些特定實例存在固定的對應關系時,這兩個對象之間為關聯關系。
表示方法:
關聯關系用實線箭頭表示。
示例:
企鵝需要‘知道’氣候的變化,需要‘了解’氣候規律。當一個類‘知道’另一個類時,可以用關聯。
2.4聚合
表示一種弱的‘擁有’關系,即has-a的關系,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。 兩個對象具有各自的生命周期。
表示方法:
聚合關系用空心的菱形+實線箭頭表示。
示例:
每一只大雁都屬於一個大雁群,一個大雁群可以有多只大雁。當大雁死去后大雁群並不會消失,兩個對象生命周期不同。
2.5組合
介紹:
組合是一種強的‘擁有’關系,是一種contains-a的關系,體現了嚴格的部分和整體關系,部分和整體的生命周期一樣。
表示方法:
組合關系用實心的菱形+實線箭頭表示,還可以使用連線兩端的數字表示某一端有幾個實例。
示例:
鳥和翅膀就是組合關系,因為它們是部分和整體的關系,並且翅膀和鳥的生命周期是相同的。
3、推薦繪制UML工具
UMLet(非常好用,上手及其簡單)
應用實例:采用UMLet畫出類以及類之間的關系圖,圖以魯迅先生的介紹為例介紹類圖的畫法。
參考:
http://www.pianshen.com/article/1059678851/ UML類圖介紹以及關系詳解