溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

發(fā)布時(shí)間:2021-12-20 14:49:56 來(lái)源:億速云 閱讀:326 作者:小新 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

接受調(diào)用動(dòng)作(AcceptCallAction)

AcceptCallAction是一個(gè)接受事件的動(dòng)作,該動(dòng)作代表一個(gè)同步調(diào)用請(qǐng)求的接受。除了一般的參數(shù)以外,這個(gè)動(dòng)作產(chǎn)生一個(gè)輸出,這個(gè)輸出為ReplyAction提供返回信息,以便把控制返還給調(diào)用者。

這個(gè)動(dòng)作是用于同步調(diào)用的,如果它被用來(lái)處理一個(gè)異步調(diào)用,則隨后的應(yīng)答動(dòng)作將會(huì)不起作用。

應(yīng)答動(dòng)作(ReplyAction)

ReplyAction是一個(gè)動(dòng)作,接受一個(gè)返回值集合和一個(gè)從AcceptCallAction傳過(guò)來(lái)的返回信息。應(yīng)答動(dòng)作把上述信息返回給前面調(diào)用的調(diào)用者,完成整個(gè)調(diào)用的執(zhí)行。


示例

我們還是以解一元二次方程為例說(shuō)明,這次以更接近于實(shí)際開(kāi)發(fā)的方式展現(xiàn)出來(lái)。

先看類圖

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

首先是Solution類,是一元二次方程的解,我們知道一元二次方程的解有三種情況:兩個(gè)解,一個(gè)解,無(wú)解。這里用DoubleSolution,SingleSolution,NullSolution來(lái)表現(xiàn)。

接下來(lái)就是Calculator類,它有一個(gè)方法solveEquation。solveEquation的原型為:

Solution* solveEquation(double a, double b, double c);

這次就以solveEquation為例說(shuō)明AcceptCallAction和ReplyAction的用法。

添加活動(dòng)圖

右鍵點(diǎn)擊【Project Browser】中的Calculator節(jié)點(diǎn)打開(kāi)上下文菜單,選擇【Add】-【Add Diagram...】以后選擇添加名為solveEquation的活動(dòng)圖。

添加AcceptCallAction

從工具欄拖動(dòng)Action圖標(biāo)到活動(dòng)圖并選擇AcceptCall以后,雙擊得到的AcceptCallAction圖形打開(kāi)屬性對(duì)話框。


打開(kāi)General屬性頁(yè),修改名稱為solveEquationEntry。

打開(kāi)Tiggers屬性頁(yè),Name欄中輸入solveEquation,選擇Type為Call。接下來(lái)點(diǎn)擊Specification欄右側(cè)的【...】按鈕以后,在【Select Operation】對(duì)話框中選擇Calculator類的solveEquation方法以后按下【確定】按鈕。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

按下下圖中【Save】按鈕以后,按下【確定】按鈕。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

右鍵打開(kāi)活動(dòng)圖中的AcceptCallAction的上下文菜單,選擇【New Child Element】-【ActionPin】,增加a,b,c三個(gè)輸出引腳。


注:比較理想的狀態(tài)應(yīng)該是選擇了Trigger以后自動(dòng)生成a,b,c三個(gè)引腳,但是作者還沒(méi)有找到方法,所以先手動(dòng)添加。請(qǐng)高手指導(dǎo)。

經(jīng)過(guò)以上的操作,【Project Browser】中的AcceptCallAction節(jié)點(diǎn)變成下面這樣。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

拖動(dòng)returnInfomation引腳到活動(dòng)圖中的AcceptCallAction,并調(diào)整引腳位置以后,活動(dòng)圖中的AcceptCallAciton變成下面這樣。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析


a,b,c對(duì)應(yīng)solveEquation的參數(shù),returnInformation下一步轉(zhuǎn)送給ReplyAction。

添加ReplyAction

從工具欄拖動(dòng)Action圖標(biāo)到活動(dòng)圖并選擇Reply以后,修改名稱為Solution。

右鍵單擊AcceptCallAction打開(kāi)上下文菜單,選擇【New Child Element】-【ActionPin】,設(shè)定名稱為空,Type為Solution*。

從【Project Browser】中的ReplyAction節(jié)點(diǎn)拖動(dòng)returnInfomation引腳到活動(dòng)圖中的ReplyAction,并調(diào)整引腳位置以后,活動(dòng)圖中的ReplyAciton變成下面這樣。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

用法總結(jié)

補(bǔ)齊其他的處理以后,得到如下的活動(dòng)圖·。

EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析

在這個(gè)例子中,solveEquationEntry動(dòng)作代表一個(gè)同步調(diào)用請(qǐng)求的接受。除了一般的參數(shù)a,b,c以外,這個(gè)動(dòng)作產(chǎn)生一個(gè)輸出returnInformation,這個(gè)輸出為ReplyAction提供返回信息,以便把控制返還給調(diào)用者。

ReplySolution動(dòng)作接受返回值Solution*和從AcceptCallAction傳過(guò)來(lái)的returnInformation返回信息并把上述信息返回給前面調(diào)用的調(diào)用者,完成整個(gè)調(diào)用的執(zhí)行。

關(guān)于“EA畫UML活動(dòng)圖中接受調(diào)用動(dòng)作和應(yīng)答動(dòng)作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI