統一建模語言(UML)是一種可視化的標準建模語言,通過UML可以構造軟件系統的藍圖。在設計模式中,使用UML來分析和設計每一個模式的結構,描述每一個模式實例,幫助我們深入理解設計模式。比如要蓋一棟房子,需要先設計圖紙,設計圖紙就是一種設計語言,也就是模型語言。在一個現代化工程中,人們要溝通和協作,就必須使用標準的工業化設計語言,通過建模進行描述,把所要設計的結構和系統的行爲聯繫起來,對系統的結構進行可視化控制。
UML結構
UML是由圖形符號表達的建模語言,其主要包括以下幾個部分:
-
視圖
使用不同的視圖從不同角度來描述軟件系統,包括:
- 用戶視圖:以用戶觀點表示系統的目標,它是所有視圖的核心,該視圖描述系統的需求
- 結構視圖:表示系統的靜態行爲和靜態元素,如包、類與對象,以及它們之間的關係
- 行爲視圖:表示系統的動態行爲,描述組成元素如對象在系統運行時的交互關係
- 環境視圖:表示系統中物理元素的分佈,描述系統中硬件設備以及它們之間的關係
-
圖
提供了十三種與上述五種視圖相對應的圖
用例圖(Use Case )對應用戶視圖。類圖、對象圖、包圖、組合結構圖對應結構視圖。狀態圖、活動圖、順序圖、通信圖、定時圖、交互概覽圖對應行爲視圖。組件圖對應實現視圖。部署圖對應環境視圖。
-
模型元素
模型元素包括事物以及事物之間的聯繫。
-
通信機制
爲模型元素提供額外的註釋、修飾和語義。
類圖
類圖是使用頻率最高的UML圖之一,在設計模式中,我們將使用類圖來描述一個模式的結構,通過類圖來分析每一個模式實例。
-
類與類圖
類封裝了數據和行爲,是面向對象的重要組成部分。類圖則用於描述系統中不同類以及它們之間的關係,表達系統的靜態結構。
-
類之間的關係
在軟件系統中,類不是孤立存在的,類與類之間存在相互關係。類之間的關係有關聯關係、依賴關係、泛化關係、接口與實現關係。
順序圖
順序圖是最常用的系統動態建模工具之一,用於表示對象之間的動態交互,而且以圖形化的方式描述了對象間消息傳遞的時間順序,是一種強調對象間消息傳遞次序的交互圖。
順序圖將交互關係表示爲一個二維圖,縱向是時間軸,時間沿着豎線向延伸;橫向軸表示交互過程中的獨立對象,對象的活動用生命線表示。順序圖由執行者、生命線、對象、激活框、消息等元素組成。
狀態圖
狀態圖用來描述一個特定對象的所有可能狀態及其引起狀態轉移的事件。狀態圖的組成元素包括狀態、初始狀態、結束狀態、轉移。