您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關EA畫UML活動圖中接受調用動作和應答動作的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
接受調用動作(AcceptCallAction)
AcceptCallAction是一個接受事件的動作,該動作代表一個同步調用請求的接受。除了一般的參數以外,這個動作產生一個輸出,這個輸出為ReplyAction提供返回信息,以便把控制返還給調用者。
這個動作是用于同步調用的,如果它被用來處理一個異步調用,則隨后的應答動作將會不起作用。
應答動作(ReplyAction)
ReplyAction是一個動作,接受一個返回值集合和一個從AcceptCallAction傳過來的返回信息。應答動作把上述信息返回給前面調用的調用者,完成整個調用的執行。
示例
我們還是以解一元二次方程為例說明,這次以更接近于實際開發的方式展現出來。
先看類圖
首先是Solution類,是一元二次方程的解,我們知道一元二次方程的解有三種情況:兩個解,一個解,無解。這里用DoubleSolution,SingleSolution,NullSolution來表現。
接下來就是Calculator類,它有一個方法solveEquation。solveEquation的原型為:
Solution* solveEquation(double a, double b, double c);
這次就以solveEquation為例說明AcceptCallAction和ReplyAction的用法。
添加活動圖
右鍵點擊【Project Browser】中的Calculator節點打開上下文菜單,選擇【Add】-【Add Diagram...】以后選擇添加名為solveEquation的活動圖。
添加AcceptCallAction
從工具欄拖動Action圖標到活動圖并選擇AcceptCall以后,雙擊得到的AcceptCallAction圖形打開屬性對話框。
打開General屬性頁,修改名稱為solveEquationEntry。
打開Tiggers屬性頁,Name欄中輸入solveEquation,選擇Type為Call。接下來點擊Specification欄右側的【...】按鈕以后,在【Select Operation】對話框中選擇Calculator類的solveEquation方法以后按下【確定】按鈕。
按下下圖中【Save】按鈕以后,按下【確定】按鈕。
右鍵打開活動圖中的AcceptCallAction的上下文菜單,選擇【New Child Element】-【ActionPin】,增加a,b,c三個輸出引腳。
注:比較理想的狀態應該是選擇了Trigger以后自動生成a,b,c三個引腳,但是作者還沒有找到方法,所以先手動添加。請高手指導。
經過以上的操作,【Project Browser】中的AcceptCallAction節點變成下面這樣。
拖動returnInfomation引腳到活動圖中的AcceptCallAction,并調整引腳位置以后,活動圖中的AcceptCallAciton變成下面這樣。
a,b,c對應solveEquation的參數,returnInformation下一步轉送給ReplyAction。
添加ReplyAction
從工具欄拖動Action圖標到活動圖并選擇Reply以后,修改名稱為Solution。
右鍵單擊AcceptCallAction打開上下文菜單,選擇【New Child Element】-【ActionPin】,設定名稱為空,Type為Solution*。
從【Project Browser】中的ReplyAction節點拖動returnInfomation引腳到活動圖中的ReplyAction,并調整引腳位置以后,活動圖中的ReplyAciton變成下面這樣。
用法總結
補齊其他的處理以后,得到如下的活動圖·。
在這個例子中,solveEquationEntry動作代表一個同步調用請求的接受。除了一般的參數a,b,c以外,這個動作產生一個輸出returnInformation,這個輸出為ReplyAction提供返回信息,以便把控制返還給調用者。
ReplySolution動作接受返回值Solution*和從AcceptCallAction傳過來的returnInformation返回信息并把上述信息返回給前面調用的調用者,完成整個調用的執行。
關于“EA畫UML活動圖中接受調用動作和應答動作的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。