日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]大多數(shù)情況下,開發(fā)者實現(xiàn)的功能都是被其他模塊調(diào)用的,如果是對C/C++理解地比較深的讀者,應(yīng)該會知道參數(shù)和返回值的傳遞機制。UML也提供了這方面的功能,這就是今天的話題:接受調(diào)用動作和應(yīng)答動作。接受調(diào)

大多數(shù)情況下,開發(fā)者實現(xiàn)的功能都是被其他模塊調(diào)用的,如果是對C/C++理解地比較深的讀者,應(yīng)該會知道參數(shù)和返回值的傳遞機制。


UML也提供了這方面的功能,這就是今天的話題:接受調(diào)用動作和應(yīng)答動作。


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


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


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


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


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



示例


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


先看類圖



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


接下來就是Calculator類,它有一個方法solveEquation。solveEquation的原型為:


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


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


添加活動圖


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


添加AcceptCallAction


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


打開General屬性頁,修改名稱為solveEquationEntry。


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



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



右鍵打開活動圖中的AcceptCallAction的上下文菜單,選擇【New Child Element】-【ActionPin】,增加a,b,c三個輸出引腳。


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


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


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



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


添加ReplyAction


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

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


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



用法總結(jié)


補齊其他的處理以后,得到如下的活動圖·。



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


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


關(guān)于示例


雖然作者多方努力,還是沒有找到有關(guān)于AcceptCallAction,ReplyAction的有意義的參考示例。這里的例子可以說是作者根據(jù)自己的理解嘗試著畫出的。算是拋磚引玉吧。




本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉