UML,統一建模語言「
Unified Modeling Language
」,是非專利的第三代建模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、面向對象的、軟件密集系統的製品的開放方法。UML展示了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行建模方面,特別是在軟件架構層次已經被驗證有效。【維基百科】php
最近再看設計模式以及一些文章時會發現有不少uml類圖,都是選擇性的大致看一下,基本上都是隻知其一;不知其二,爲了更深層次的理解,便想主動學習一下UML類圖的相關知識。設計模式
總體結構圖以下圖所示: 架構
動物
矩形框表明着一個類「
Class
」。類圖分爲三層。第一層顯示類的名稱,若是是抽象類,就用斜體顯示。第二層是類的特性,一般就是字段和屬性。第三層是類的操做,一般是方法和行爲。注意前面的符號,
+
表示
public
,
-
表示
private
,
#
號表示
protect
。
<<interface>>
顯示,第一行是接口的名稱,第二行是方法。
接口還有另外一種表示方法,俗稱「
棒棒糖表示法
」,好比圖中的唐老鴨類就是實現了
講人話
的接口。
標準稱之爲:泛化「generalization
」關係 學習
空心三角形+實線
來表示。
大雁實現了飛翔接口,實現接口用空心三角形+虛線
來表示。設計
知道
氣候的變化,須要
瞭解
氣候規律,來進行長途跋涉的遷移活動。 當一個類
知道
另外一個類時,能夠用
關聯(association)
,關聯關係用
實線箭頭
來表示。
聚合表示一種弱擁有關係
,體現的是A對象能夠包含B對象,但B對象不是A對象的一部分 聚合關係用空心的菱形+實線箭頭
來表示3d
合成(Composition
或者「組合」)是一種強的擁有
關係,體現了嚴格的部分和總體的關係,部分和總體的生命週期同樣 如上圖,鳥和翅膀就是合成(組合)關係,由於它們是總體和部分的關係,而且翅膀和鳥的生命週期是相同的。同時在合成關係連線的兩端還有一個數字1
和數字2
,這被稱爲基數。代表這一端的類能夠有幾個實例,很顯然一個鳥應該有兩隻翅膀。若是一個類可能有無數個實例,則就用n
來表示,關聯關係、聚合關係都是能夠有基數的。code
合成關係用實心的菱形+實線箭頭
來表示。cdn
Dependency
)。 依賴關係用
虛線箭頭
來表示。