1. 程式人生 > >UML之序列圖(Sequence Diagram)

UML之序列圖(Sequence Diagram)

類圖描述的是類之間的靜態關係,而序列圖展示的是物件之間的溝通方法,描述執行時的互動關係。
OOP程式語言裡面合理的直接互動方式只有一種,方法呼叫(Event通訊是間接的)。所以序列圖也可以
理解為方法呼叫互動圖。方法呼叫有四個元素,參與者(兩個,呼叫者和被呼叫者),方法名稱,輸入
和輸出。

參與者

參與者用一個Lifeline來表示,影象為一個矩形外加底部的一條豎線。矩形裡面顯示物件名,格式為
name:ClassType的樣式,都為可選項,Martin Fowler推薦a Handler的格式,我更喜歡Handler
不過記得序列圖裡面的參與者都是物件。豎線表示生命週期,從上往下來看,Active的地方為Bar形式,
其它為虛線。如下圖:


方法呼叫

方法呼叫在序列圖裡面用訊息來表示,為了簡單起見,這裡只考慮同步呼叫。方法名體現為訊息名稱;
輸入置於訊息名稱之後,用逗號分隔,並用小括號括起來,很像Java或C#裡面的引數列表;返回值用
獨立的返回訊息來表示,返回值為虛線。如下圖:


資料庫查詢的例子

注意new關鍵字,OOP裡面有建構函式的概念,新建一個物件的過程就是呼叫建構函式的過程。
圖如下:


小結

我覺得序列圖是類圖的一個補充,用於描述一些重要的執行時物件呼叫關係。簡單來理解的話,
序列圖就是方法呼叫棧。參與者,方法名,輸入,輸出是呼叫的四個組成部分。