文章目錄
前言
IDEA
下載插件 PlantUML
,直接在 IDEA
里面編寫 UML
,很方便;然后電腦再安裝渲染引擎 Gravizo
,沒有它,復雜的類圖就無法渲染了 ;
鏈接:https://pan.baidu.com/s/12GmRAMjRDAkVLJTp4x64vw 提取碼:018g
對了 PlantUML
插件,貌似不提供拖拽控件,這無所謂,就像真正的安卓高手,寫布局,絕對不會是拖拽控件的,肯定是手寫xml
文件;
如果看到這了,也不用挑了, PlantUML
無比強大,顏值也不差,支持導出普通圖片和矢量圖,就選 PlantUML
,不用再去比較哪一個最好了,比較來比較去,也沒意思,就像各種語言之爭一樣,再厲害也是工具厲害,對吧,為何不做個自己也厲害的人呢;
-> -->
信息傳遞
小明與小紅對話:
這里的 小明
、小紅
都是參與者,關於參與者看下一節;
聲明參與者的幾個關鍵字
actor
boundary
control
entity
database
collections
participant
它們都是參與者,只是聲明出來的 圖標 不一樣,根據單詞意思也可以看出,在合適的地方選擇合適的參與者;:
as
重命名參與者
在聲明參與者的時候,可以取別名 ,然后再以后使用,可以直接使用別名,但是原名字不能再被使用;
聲明參與者的時候,參與者的名字是可以使用雙引號括起來的,比如你的名字很長,中間有空格就需要雙引號括起來;但是別名是不允許有雙引號的;
#
添加顏色
#
為參與者賦予顏色,后面可以是 RGB
顏色,也可以是顏色的單詞:
order
定義參與者順序
默認參與者安裝聲明的先后進行排序,可以自定義順序,使用 order
關鍵字排序;先后順序,安裝 order
后面的數字來決定,數值越小,越靠前,數值一樣大,按照聲明順序;
“”
參與者名字
參與者起名字的時候,一般只能是字母、數字,如果想使用其他字符,則可以使用 “”
括起來:
給自己發信息
消息太長,可以使用 \n
進行換行;
修改傳達信息的箭頭樣式
我們可以通過,修改箭頭樣式,來表達不一樣的意思:
- 表示一條丟失的消息:末尾加 x
- 讓箭頭只有上半部分或者下半部分:將<和>替換成\或者 /
- 細箭頭:將箭頭標記寫兩次 (如 >> 或 //)
- 虛線箭頭:用 – 替代 -
- 箭頭末尾加圈:->o
- 雙向箭頭:<->
修改箭頭顏色
在寫箭頭的時候,在中間插入 [#xxx]
變為 -[#xxx]>
:
autonumber
消息序列
autonumber
會自動的對信息進步編號:autonumber xx
從指定的數字xx
開始編號:autonumber xx zz
從指定數字xx
開始編號,每次步長為zz
:
自定義編號的格式
雙引號里面的就是編號的格式:
- 雙引號內嵌入
html
標簽:autonumber “<b>10<b>”
,加粗編號 - 制定編號的格式:
autonumber 40 "<b>message (000)</b>"
- 制定格式的時候,0 ,# 都代表數字,但是 0 可以占位,# 不能;
暫停、啟用自動編號
- 可以暫停使用編號:
autonumber stop
- 還可以繼續接着之前的編號,啟用編號
- 或者,從新的編號開始,繼續啟用編號
設置標題、頁眉、頁腳
title
,設置標題herder
,設置頁眉footer
,設置頁腳,如果想用頁碼,則加上%page% of %lastpage%
分割頁面
newpage
會產生新的一幅圖,並且上文提到的 title
只能為第一頁寫標題,無論你寫在哪里,都只能為第一頁寫標題:
組合信息
alt/else
,類似於if / else
opt
選擇,loop
循環par
break
跳出循環critical
group
組
它們后面緊跟着消息內容,都是用來組合信息,就跟定義參與者一樣,也有好多的關鍵字,但是自己根據場景選擇對應的關鍵字,這里也是,使用 end
結束沒個小分組;
給信息添加注釋
-
在左邊添加注釋
note left :
-
在右邊添加注釋
note right :
-
多行注釋,
note left /right 多行注釋 end note
-
在特定參與者添加注釋
note left of,note right of或note over
這里說個小竅門,注釋怎么看是誰的,首先看線,只要是那個參與者的注釋,則那個參與者的線,是必定壓不到的;如果壓到線了,那么就是
over
的情況了,注釋偏向誰那邊,就是誰的,如果差不多在中見,則是兩/多個參與者共有的;
改變注釋框的外觀
使用 hnote 和 rnote
取代之前的 note
,h
是六邊形,r
是長方形:
使用 html
<b> 或者 `**`括起來: 加粗文本
<u> 或者 `_ _`括起來:加下划線
<i> 或者 `//`括起來:斜體
<s> 或者 `--`括起來:刪除線
<w> 或者 `~~`括起來:波浪線
<color:#AAAAAA> 或 <color:colorName> 用來設置文本顏色
<back:#AAAAAA> 或 <back:colorName> 用來設置背景色
<size:nn> 設置字體大小
<img src="file"> 或 <img:file> 用來添加圖片,圖片文件必須 是可以訪問得到才行。
<img src="http://url"> 或 <img:http://url> 用來添加一個互 聯網圖片,同樣的圖片地址必須是可用的才行。
分割符
== xxx ==
分割流程:
延遲
...
代表延遲:
空間
有時候我們感覺,上下文信息太過密集,可以使用 |||
來增加空間,或者 ||size||
指定空間大小:
生命線激活、撤銷
activate和deactivate
用來表示參與者的生命活動激活、撤銷,而 destroy
則代表生命線的摧毀:
生命線被撤銷、摧毀以后,還是可以再次激活的,但是不能在同一個點,撤銷、摧毀以后,立馬激活,在圖中表現為,線必須要有斷點:
在生命線激活期間,可以再次激活, 也可給生命線上顏色,激活以后 #xxxx
:
Return
可以根據上下文信息智能的判斷,返回到哪一個點,還可以傳遞信息過去;
比如,上文 A->B
,則 return
就是B->A
:
創建參與者
在對話期間,創建參與者,而不是一開始參與者就存在,然后兩人對話:
在發送信息之前,使用 create actor xxx
創建對象,然后再和 xxx
發信息
進入和發出消息
[ ,]
分別代表左右兩側,寫的時候,一般我是先寫 xx
,代表參與者,然后箭頭,最后寫 [,]
,這里的箭頭可以是之前學的各種樣式:
箭頭樣式的時候,需要注意下,
當然,寫法不止這一種,自己也可以挑選好記的:
包裹參與者
可以使用box和end box畫一個盒子將參與者包裹起來。
還可以在box關鍵字之后添加標題或者背景顏色。
移除腳注
使用hide footbox
關鍵字移除腳注,這樣就沒有
skinparam 外觀參數
使用 skinparam handwritten true
開啟手寫風格
使用 skinparam backgroundColor #顏色RGB
指定背景填充顏色
skinparam ParticipantPadding 數值
指定參與者的外邊距skinparam BoxPadding 數值
指定box
的外邊距