www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > > 充電吧
[導讀]在開始今天的說明之前,先來補齊最后一點知識。15.7.25 Variable [Class](變量)15.7.25.1 Description(描述)A Variable is a Connectab

在開始今天的說明之前,先來補齊最后一點知識。


15.7.25 Variable [Class](變量)


15.7.25.1 Description(描述)


A Variable is a ConnectableElement that may store values during the execution of an Activity. Reading and writing the values of a Variable provides an alternative means for passing data than the use of ObjectFlows. A Variable may be owned directly by an Activity, in which case it is accessible from anywhere within that activity, or it may be owned by a StructuredActivityNode, in which case it is only accessible within that node.


變量是一種可連接元素,它可以在活動執(zhí)行期間儲存值。讀寫變量的值提供了除對象流以外的另一種傳送數(shù)據(jù)的手段。變量可以直接被活動所擁有,這種情況下它可以在活動內部的任何地方被訪問,它也可以被結構化活動節(jié)點所擁有,這時它只可以在該節(jié)點內部被訪問。


這段話說明了什么呢?至少有以下幾點:


變量是存儲值的容器而不是值本身

如果我們把活動看作一個方法(或函數(shù))那么這里的變量就是C/C++語言的局部變量(約等于吧)

通過變量傳遞值是數(shù)據(jù)流的代替手段。


回到今天的主題,首先是抽象語法部分,也就是下面這張圖。


從圖中應該可以(但不限于)讀到以下信息:


圖中有三個抽象Action類:Action,VariableAction和WriteVariableAction

圖中有四個具象Action類:ReadVariableAction,AddVariableValueAction,RemoveVariableValueAction和ClearVarialeAction

所有的VariableAction都和一個Variable相關聯(lián)

ReadVariableAction有一個輸出引腳

所有的WriteVariableAction有[0..1]個value輸入引腳

AddVariableValueAction有[0..1]個insertAt輸入引腳

AddVariableValueAction有[0..1]個removeAt輸入引腳

ClearVariableAction沒有引腳


四個抽象類不會在實際應用中使用,所以這里只說明四個具象類。


Read Variable Actions(讀變量動作)


讀 變量動作就是將變量中的值取出來放到result輸出引腳生成的對象令牌中,如果讀不到值,就生成空令牌。另外一個就是變量的多重度要和引腳的多重度兼 容,說白了就是引腳要裝得下變量中的值,也就是說引腳的多重度下限要小于等于變量的多重度下限,而引腳的多重度上限要大于等于變量的多重度上限。假設變量 的多重度為2..5,如果引腳的多重度如果是1..6,或者2..5就沒有問題,如果引腳的多重度為2..4,3..4都是不可以的。


Add Variable Value Action(增加變量值動作)


首先增加變量值動作每次只增加一個值,這個值通過value輸入引腳指定。如果這個值已經(jīng)在變量中存在,那本次操作對變量沒有影響。


增加變量值操有有一個選項isReplaceAll,用來控制增加新值時,之前保存在變量中的值如何處理。


當isReplaceAll為真時會清除之前保存在變量中的所有值,這時增加變量值操作實際上是一個替換操作。


當isReplaceAll為假時,就意味著隨著增加變量動作的進行,變量中保存的值會逐漸增加。如果變量是無序的,就不用在意值的位置,隨便丟進去就可以了;如果變量是有序的就需用通過insertAt引腳提供一個指定插入位置的整數(shù)。


如果向變量插入一個已經(jīng)存在的值,這時增加變量值動作相當于移動變量值動作。


Remove Variable Value Actions(移除變量值動作)


和增加變量值動作類似,移除變量值也是每次操作一個值。


移 除變量值操作有一個選項:isRemoveDuplicates,用于表明是否要從變量中移除重復值。如果isRemoveDuplicates為假,而 且變量是有序的,那么就通過removeAt引腳取得移除對象的位置然后變量中移除該位置的值;其他的情況下,value引腳有效并提供作為操作對象的 值。變量中所有與之相同的值都會被移除。


Clear Variable Actions(清除變量動作)


清除變量動作移除變量的所有變量值。


注意


需要注意的是,這里提到的有序并不是常說的升序/降序排序是的順序,只是說值可以通過索引訪問,換句話說就是數(shù)組。詳細信息可以參照另一篇文章:EA&UML日拱一卒-Types and Multiplicity。


參考資料:

《OMG Unified Modeling Language TM (OMG UML) Version 2.5》

??


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

C語言是一種高級程序設計語言,它提供了十分完備的規(guī)范化流程控制結構。因此采用C51語言設計單片機應用系統(tǒng)程序時,首先要盡可能地采用結構化的程序設計方法,這樣可使整個應用系統(tǒng)程序結構清晰,易于調試和維護。對于一個較大的程序...

關鍵字: C51語言 變量 存儲

其實在 c++語言里面const修飾的才算是一個真正的常量,在 c 語言中 const 可以說是個“冒牌貨”。為什么會這樣?其實是 c++ 編譯器對 const 進行了加強,當 c++ 編譯器遇到常量聲明時,不會像 c...

關鍵字: c++ C語言 const

定義一個變量,就是在內存中為你定義的這個變量開辟一段內存空間,如果這個變量沒有初始化,那么系統(tǒng)會隨機給這個變量賦一個值,這個值我一般稱它為"垃圾數(shù)"。沒有初始化的變量我認為它是沒有意義的,是在浪費內存,就比如人剛出生的時...

關鍵字: 變量 初始化 賦值

返回函數(shù)的引用去初始化一個新的引用這個和前面一樣,都是不會產(chǎn)生副本,但是現(xiàn)在是用返回值去初始化一個引用聲明c,也就是說這時候變成了變量temp的別名,在c的生命周期內temp是一直有效的,這樣做完全可以。

關鍵字: c++ 返回值 引用聲明

用靜態(tài)局部變量,還是臨時變量,要牽涉到你項目具體情況,比如:RAM資源、代碼運行效率等。(臨時變量還會有一個數(shù)據(jù)拷貝過程)所以,該如何分配堆棧,該用靜態(tài)還是臨時變量,需要綜合考慮你項目的情況而定。

關鍵字: 靜態(tài)局部 變量 項目

C++是一種面向對象的高級程序設計語言,是C語言的超集。

關鍵字: c++ C語言

在C語言中,按照生命周期來分,變量只有兩類:靜態(tài)變量和動態(tài)變量。

關鍵字: C語言 變量

分析:這是Adobe 公司2007 年校園招聘的最新筆試題。這道題除了考察應聘者的C++ 基本功底外,還能考察反應能力,是一道很好的題目。 在Java 中定義了關鍵字final ,被final 修飾的

關鍵字: c++ class

泛型算法中的定制操作很多算法都會比較輸入序列中的元素,通過定制比較動作,可以控制算法按照編程者的意圖工作。本文以string排序為例進行說明,首先是缺省的排序動作:?vector v{"This","

關鍵字: c++

為什么是lambda?講了這么多天的lambda表達式,有一個很基本的問題沒有回答:為什么叫l(wèi)ambda表達式呢?首先這個lambda就是羅馬字母λ,lambda表達式即λ表達式。數(shù)學上有一個概念叫λ

關鍵字: c++
關閉