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)::時間約束
※大話設計模式之簡單工廠模式與策略模式