1. 程式人生 > 其它 >學習筆記:UML類圖

學習筆記:UML類圖

一、何謂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

《大話設計模式》