1. 程式人生 > >統一建模語言

統一建模語言

有效 設計模式 註意 一個 業務場景 類別 關系 購物車 概念

統一建模語言

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畫圖工具,直接在紙上寫寫畫畫就好,本文的所有圖示就是直接在草稿上設計的。

最後,最最最重要的是,請動手畫!

統一建模語言