一、何謂UML類圖
類是具有相似結構、行為和關系的一組對象的描述符。類是面向對象系統中最重要的構造塊。類圖顯示了一組類、接口、協作以及他們之間的關系。UML是統一建模語言,是一種可視化的面向對象建模語言,是一種用來對真實世界物理進行建模的標准標記,用圖形方式表現典型的面向對象系統的整個結構。它的作用域不局限於支持面向對象的分析與設計,還支持從需求分析開始的軟件開發的全過程。
UML的概念包括了UML語義(Semantics)和UML表示符(Notation)兩個部分。UML語義定義了靜態模型和動態模型。結構模型強調系統的對象結構,入對象的類、接口、屬性和關系;行為模型關注的是系統對象的行為動作,如對象的方法、交互、協作和狀態。UML表示符為開發者或開發工具使用這些圖形符號和文本語法為系統建模提供了標准。重要內容由9種圖來定義,包括用例圖、類圖、對象圖、狀態圖、構件圖、部署圖、協作圖、交互序列圖、活動圖。
二、UML類圖的特點
(1)UML統一了各種方法對不同類型的系統、不同開發階段以及不同內部概念的不同觀點,從而有效地消除了各種建模語言之間不必要的差異,它實際上是一種通用的建模語言。
(2)UML建模能力比其他面向對象建模方法更強。它不僅適合於一般系統的開發,而且對並行、分布式系統的建模尤為適宜。
(3)UML是一種建模語言,而不是一個開發過程
三、UML類圖中的常用符號
下圖是常用來進行學習的UML類圖:
首先我們從最簡單的類結構說起,即動物的那個矩形框
表示一個類,一般的類圖會分為三層,第一層表示類的名字、第二層表示類的特性(通常是字段和屬性)、第三層表示類的操作 (常用的是方法和行為)
同時我們注意到前面的符號,表示類的權限:‘+’ 表示public、‘-’表示private,‘#’表示protect
我們可以看到,在左下角的飛翔和有一個接口圖,其主要區別就是頂端有《interface》
接口還有另一種表示方法,俗稱棒棒糖表示法:
圓圈旁邊為接口名稱,接口方法在實現類中出現
而繼承關系則用空心三角星+實線來表示,實現接口則用空心三角形+虛線來進行表示
當一類需要知道另一個類的時候,則需要用關聯關系來進行表示,關聯關系用實現+箭頭來進行標識
class Penguin : Bird{
private Climate climate; // 在企鵝對象中,引用到氣候climate對象
}
我們再來看大雁和雁群這兩個類,大雁是群居動物,每只大雁都屬於一個雁群,一個雁群可以包含多只大雁,它們之間滿足聚合關系
聚合關系:表示一種弱擁有,體現的是A對象可以包含B對象,但B對象不是A對象的一部分
class WideGooseAggreate{ private WideGoose[] arrayWideGoose;//在雁群類中,有大雁數組對象 }
合成則表示一種強的擁有關系(Composition,也可以翻譯成組合),體現了嚴格的部分和整體的關系,部分和整體的生命周期一樣。
鳥和翅膀就是組合關系,因為他們之間是部分和整體的關系,並且具有相同的生命周期,其用實心的菱形+實現箭頭來表示,除此之外,在這條線上還有幾個數字,我們稱之為基數,用來表示一段的類可以具有幾個實例。
class Bird{ private Wing wing; public Bird(){ wing = new wing();//bird 和 wing 同時生成 } }
而動物則有幾大特征,如新陳代謝等,動物需要有生命力、需要氧氣、水以及食物。也就是說,動物依賴於氧氣和水,他們之間是依賴關系用虛線箭頭來進行標識。
可能剛開始對UML類圖並不熟悉,需要多看和理解,應該就很容易掌握。
參考文章:
https://blog.csdn.net/qq_40138785/article/details/81065979
https://www.jianshu.com/p/57620b762160
《大話設計模式》