統一建模語言
統一建模語言
DDD理論學習系列——案例及目錄
1.引言
上一節講解了領域模型,領域模型主要是將業務中涉及到的概念以面向對象的思想進行抽象,抽象出實體對象,確定實體所對應的方法和屬性,以及實體之間的關系。然後將這些實體和實體之間的關系以某種形式(比如UML、圖形、代碼、文字描述等)展現出來。而領域模型是領域建模的結果,那如何建模呢?我們可以借助於UML。
我們知道UML(統一建模語言)是一種用於繪制軟件概念圖的圖形符號。在和他人交流以及幫助解決設計問題方法,圖示是最有效的。在DDD中我們習慣用UML進行領域建模,所以為了後續章節的展開,我們需要而且必須熟悉常用UML的使用。之前也寫了一篇文章,想要學習設計模式,你得先會看類圖,一張圖讀懂UML,介紹了一些基本的用法,不妨一看。
下面就開始簡單介紹下幾種常見的UML的基本用法。
2. UML的級別和類別
在《UML精粹》中,UML主要被分為三個級別:
- 概念級別:用來描述問題領域中概念和抽象的一種速記方法,沒有比較嚴格的語義規則。和源代碼之間沒有很強的關聯性。
- 規格說明級別:描繪問題的解決方案,目的是為了能夠轉換成源代碼。要遵循嚴格的語義規則。
- 實現級別:用來描繪已有的源代碼,如類圖。要遵循嚴格的語義規則。
UML主要有三種圖示類別:
- 靜態圖(static diagram):描述了類、對象、數據結構以及它們之間的關系,展現出軟件元素間不變的邏輯結構。類圖、對象圖都是靜態圖。
- 動態圖(dynamci diagram)
- 物理圖(physical diagram):展示軟件實體不變的物理結構,描述了諸如源文件、庫、二進制文件、數據文件等物理實體以及它們之間的關系。
3. 案例分析
為了真正對UML有一個直觀的認識,我們還是結合具體的業務場景(購物車)舉例分析,進行UML圖示 設計。
3.1.類圖
類圖主要展示程序中主要的類和關系。
購物車主要涉及到四個對象:購物車、購物車子項、商品、類別。
在本圖中,所有的關系都是聚合關系。
3.2. 對象圖
對象圖展示的是系統執行的某個特定時刻的一組對象和關系,可以看作內存快照。
該圖示就展示了當前購物車有兩件商品。
3.3.順序圖
順序圖是一個動態模型,是為了清楚表達出消息的順序。
其中要註意幾個圖示:
- 虛線:生命線。
- 窄條小矩形:激活,表示函數執行的時間。
- 方括號中的布爾表達式:監護條件。
- 小圓圈箭頭:數據標記
3.4.協作圖
協作圖是為了表達出對象之間的關系。
3.5.狀態圖
狀態圖是為了理解系統的行為和狀態的轉換。
該圖就簡要描述了,訂單從正常、發貨、關閉之間的狀態轉換。
4.總結
本文通過簡單的案例簡單介紹了幾種常用的UML的用法。由於自己對UML也不是很了解,以上圖示難免有所紕漏。
UML本身是一個復雜的東西,要完全掌握它是需要耗費很大時間和精力。但是我們在建模時要本著越少越好的思想去使用它。不要過於追求圖示的詳細程度,且UML圖不是源代碼,沒有必要申明所有方法、變量和關系。
在學習UML的時候,不建議一上來就去找一些UML畫圖工具,直接在紙上寫寫畫畫就好,本文的所有圖示就是直接在草稿上設計的。
最後,最最最重要的是,請動手畫!
統一建模語言