EA&UML日拱一卒--活動圖::對象流

如果你足夠細心,應該可以注意到上一篇文章最後的示例流程中,有一個地方與眾不同,就是下圖中紅框中的部分。

這部分就是今天的內容,對象流。

語義

控制流(control flow)描述了兩個活動節點之間執行令牌(執行焦點)的流動。還有另外一種情況,兩個活動之間除了傳送執行令牌,還需要傳送數據或對象,這種情況稱之為對象流(object flow)。

表示方法

對象流有兩種表示方法,一種是將控制流一分為二,中間加上傳送的對象或數據。

另外一種表示方法是在兩個活動節點的輸入輸出之間連線。

需要補充說明的是,Action旁邊的小正方形叫ActionPin,用來表示Action的輸入/輸出管腳。

畫法

第一種表示方法

1. 拖動下面的Object圖標到適當位置

2. 選擇控制流圖標,連接Action到對象,對象到下一個Action

第二種表示方法

選擇下面的對象流圖標,連接源Action和目的Action即可。

當然也可以選擇Action上下文菜單-【New child element】-【Action pin】添加輸入/輸出管腳以後選擇控制流圖標並連接。

總結

最簡單的問題,為什麼需要對象流?

首先回頭看看活動圖入門一文最後的例子。

我們知道,寫程序也好,讀程序也好,除了關注程序流以外還應該關注數據流。UML活動圖中的對象流正好可以用來表達數據流,而流程圖就不行。

以下是我們補充了對象流以後的樣子。

對象圖明白地表明了各個處理之間的數據走向。

需要補充說明的是,只有所有的輸入控制流/對象流上執行令牌都到達時,Action或者Activity才能執行。

現在可以回頭看本文開始的流程圖,可以做如下理解:

1. UI流程接受到複印流程傳來的event以後,轉送給decision node。

2. decision node根據event的種類,調用不同的處理並將event向該處理轉移。·

3. 被調用的處理根據event中保管的信息進行相應的處理。

以上就是今天的文章,如果它能給您帶來些許收穫,歡迎點贊並推薦給您的朋友!

閱讀更多更新文章,請關注【面向對象思考】微信公眾號!


推薦閱讀:

簡析面向切面編程AOP
Python 面向對象(進階篇)
EA&UML日拱一卒--序列圖(Sequence Diagram)::時間約束
大話設計模式之簡單工廠模式與策略模式

TAG:面向對象編程 | 面向對象分析與設計 | UML建模 |