ReadSelfAction和ReadStructuralFeatureAction

上一篇文章中介紹了AcceptCallAction和ReplyAction兩個動作。今天介紹另外兩個動作:ReadSelfAction和ReadStructualFeatureAction。

首先介紹《GB/T 28174.2-2011 統一建模語言(UML) 第2部分:上層結構》中對這兩個動作的描述。為了更容易理解,內容稍作修改。

讀自身動作(ReadSelfAction)

ReadSelfAction 是一個動作,該動作讀取動作的宿主對象。每個動作最終都是某個行為的一部分。行為按照一個類目的規範,以某種方式被附屬到一個方法的實體上,當行為執行 時,該動作在類目的某一個指定的宿主對象的語境中起作用。ReadSelfAction取得這個宿主對象,將它放到輸出引腳上。

讀結構性特徵動作(ReadStructuralFeatureAction)

ReadStructuralFeatureAction是一個獲取結性特徵值的動作。

它有一個輸入引腳,用於指定輸入對象。當輸入對象被指定以後,該對象的結構性特性的值被放置在動作的輸出引腳上。輸出引腳的類型,有序性,多重性都應與結構性特徵相適合。

示例

繼續使用解一元二次方程的例子。首先看類圖。

CalculateCoordinator 管理著Calculator和CalculatorPanel的實例,在calculateMain方法中首先調用CalculatorPanel的 getInput方法取得一元二次方程的a,b,c三個係數,然後調用Calculator的solveEquation方法解方程。今天首先索命取得 calculator對象和panel對象的方法。

準備工作

1. 創建名稱為CalculateCoordinator::calcuateMain的活動圖

2. 增加初始節點

3. 增加AcceptCallAction並指定Trigger為CalcuateCoordinator.calculateMain。具體步驟請參照上一篇文章。

增加ReadSelfAction,ReadStructuralFeatureAction

從工具欄拖動Action圖標到流程圖,選擇Action類型為ReadSelf

指定Action名稱為coordinator

右鍵打開ReadSelfAction的上下菜單並選擇【Structural Elements】,在出現的對話框中選擇result引腳後調整位置

用控制流連接AcceptCallAction和ReadSelfAction

從工具欄拖動Action圖標到流程圖,選擇Action類型為ReadStructuralFeature

指定Action名稱為CalculateCoordinator

修改名稱為result的輸出引腳,指定名稱為calculator,選擇類型為Calculator

增加一個名稱為panel,類型為CalculatorPanel的輸出引腳。

右鍵打開ReadStructuralFeatureAction的上下菜單並選擇【Structural Elements】,在出現的對話框中選擇表示所有引腳後調整位置。

連接ReadSelfAction的輸出引腳到ReadStructuralAction的輸入引腳object.

解說

ReadSelfAction 是一個動作,該動作讀取CalculateCoordinator::calculateMain的宿主對象。當行為執行時,該動作在 CalculateCoordinator類的某一個宿主對象的語境中起作用。ReadSelfAction取得這個宿主對象,將它放到輸出引腳上。看懂 沒?ReadSelfAction的功能相當於C++中的this指針!

本例中 ReadStructuralFeatureAction的輸入引腳指定了ReadSelfAction取得的CalculateCoordinator 的一個實例,這時該對象的結構性特性的值calculator:Calculator和panel:CalculateorPanel被放置在該動作的輸 出引腳上。輸出引腳的類型,有序性,多重性都應與結構性特徵相適合。還是以C++舉例,ReadStructuralFeatureAction的功能其實就是輸入對象,輸出對象的數據成員!

下一篇文章介紹使用得到的calculator和panel實例調用其功能的的表達方法。

以上就是今天的文章,拜託點贊並推薦給您的朋友!

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


推薦閱讀:

活動圖::SendSignalAction
OOD 高頻面試題 | 如何設計一個ATM
(翻譯)14.1 Summary
活動圖::Structural Feature Actions(續)

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