您好,登錄后才能下訂單哦!
本篇內容主要講解“行為狀態(tài)機怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“行為狀態(tài)機怎么理解”吧!
概要
行為狀態(tài)機可以用于定義下面的場景
主動類的類目行為
一個行為化類目的除了類目行為以外的擁有行為。
沒有對應的行為化類目的獨立行為
對應行為特征的方法(即操作或接受)
抽象語法
語義
1、狀態(tài)機
行為狀態(tài)機包含了一個或多個區(qū)域,每個區(qū)域包含一個圖(可能是分層的),圖中又包含一組被被圓弧形遷移相互連接的頂點。當適當?shù)氖录l(fā)生時,狀態(tài)機會被觸發(fā)執(zhí)行。狀態(tài)機的特定執(zhí)行表現(xiàn)為一組經(jīng)過一個或多個區(qū)域有效路徑的遍歷,觸發(fā)的方式是發(fā)行一個與圖中有效觸發(fā)條件相匹配的事件發(fā)生。觸發(fā)條件匹配的原則會在后面描述。在這樣一個遍歷過程中,狀態(tài)機實例可能會執(zhí)行一個隱含的復雜的行為序列,這些行為和圖中被通過的特定元素聯(lián)系在一起(遷移效果,狀態(tài)入口,狀態(tài)出口行為等)
如果狀態(tài)機有某種行為類目上下文,那么這個類目定義了哪些信號和調用事件可以適用于那個狀態(tài)機,也定義了哪些特征對狀態(tài)機擁有的行為可用。狀態(tài)機的信號觸發(fā)條件和調用事件觸發(fā)條件根據(jù)這個類目的接受和操作被分別定義。這些特征可以被用于定義狀態(tài)機的消息事件觸發(fā)條件。
如果狀態(tài)機沒有行為類目上下文(即它是一個獨立行為),那么它的觸發(fā)條件不需要綁定到類目的接受和操作上。例如,這樣的狀態(tài)機可能被定義為以觸發(fā)條件為模板參數(shù)的模板,這樣,狀態(tài)機可以通過為模板參數(shù)綁定合適的調用事件和信號事件來配合不同的上下文類目一起使用。
如果狀態(tài)機定義了一個行為特征(操作或接受)的方法,那么狀態(tài)機的參數(shù)應該和行為特征(參見13.2.3小節(jié))的參數(shù)相匹配。這意味著通過參數(shù),狀態(tài)機執(zhí)行可以參照行為特征的參數(shù)。否則,執(zhí)行中的狀態(tài)機實例訪問分發(fā)的事件發(fā)生和它的關聯(lián)數(shù)據(jù)的方法無定義(參見13小節(jié))。
按照定義,狀態(tài)機執(zhí)行的調用導致被觸發(fā)的效果(參見13.3.3小節(jié))和一個因此而存在的,與這個執(zhí)行相關聯(lián)的事件池。狀態(tài)機的這個事件池可能屬于它的上下文類目對象,或者當狀態(tài)機定義了一個行為特征的方法時,屬于擁有的這個行為特征的類目的實例。
由于它的事件驅動性質,狀態(tài)機執(zhí)行可以是遷移中或狀態(tài)內,在兩者之間交替。當分發(fā)的某個事件和某個遷移的至少一個觸發(fā)條件匹配時,它處在遷移中。在遷移中,它可能會執(zhí)行若干與選中路徑想關聯(lián)的行為。
注意:當存在doActivity行為與活動狀態(tài)配置相關聯(lián)時,即使它存在與穩(wěn)定狀態(tài)配置中,狀態(tài)機執(zhí)行也可以是執(zhí)行中行為。
2、區(qū)域
區(qū)域表示一個行為片段,它可以和其他的正交區(qū)域并發(fā)執(zhí)行。如果兩個或多個的區(qū)域被同一個狀態(tài)擁有,或者在頂層時被同一個狀態(tài)機擁有,那么就說它們彼此正交。一個區(qū)域變成活動狀態(tài)(即開始執(zhí)行)有兩種情況,一種是它擁有的狀態(tài)被進入,另一種情況是直接擁有它的狀態(tài)機開始執(zhí)行。每個區(qū)域包含一組頂點和遷移,由它們決定區(qū)域中的行為流程。它可以擁有自己的起始偽狀態(tài),也可以擁有自己的終止狀態(tài)。
區(qū)域的缺省激活發(fā)生在它被隱含進入的時候,就是說,它不是被一個終止于區(qū)域元素頂點(例如狀態(tài)或歷史偽節(jié)點)的輸入遷移進入的。但是應該
1)通過一個終止于包含區(qū)域的狀態(tài)的(局部或外部)遷移,或者
2)如果是頂層區(qū)域,當狀態(tài)機開始執(zhí)行時。
缺省的激活意味著從起始于區(qū)域中的初始偽狀態(tài)的遷移開始執(zhí)行,如果定義了一個的話。如果區(qū)域中不存在初始偽狀態(tài),那么就沒有特定的動作。一個可能的處理是將模式視為病態(tài)。也可以認為區(qū)域維持非激活狀態(tài),哪怕包含它的狀態(tài)處于有活動狀態(tài)。換句話說,包含區(qū)域的狀態(tài)可以被認為是簡單(葉子)狀態(tài)。
相反地,明確的激活是在終止于區(qū)域包含的頂點的遷移進入?yún)^(qū)域時發(fā)生的。當正交狀態(tài)的一個區(qū)域被明確地激活后,將導致它所有的正交區(qū)域被缺省激活。除非那些區(qū)域也是被明確進入的(多個正交區(qū)域可以通過開始于同一個分叉?zhèn)螤顟B(tài)的遷移被明確的并發(fā)激活)。
3、頂點
頂點是一個抽象類,它抽取了狀態(tài)圖中各種的不同種類的具體節(jié)點(狀態(tài),偽狀態(tài)或連接點參照)的特征。除了下面的例外,頂點可以作為任意數(shù)量的遷移的目的而且/或者源。頂點的語義依賴于它所表現(xiàn)的具體類型。通常,偽狀態(tài)和連接點參照是過渡性的,意思是一個混合遷移執(zhí)行只是簡單地通過它們,作為輸入遷移到達,作為輸出遷移離開而不作停留。然而狀態(tài)和終止狀態(tài)表現(xiàn)為穩(wěn)定頂點,當狀態(tài)機執(zhí)行進入它們以后,將停留在這些狀態(tài)的內部,直到某些可以引起遷移的事件發(fā)生,或者狀態(tài)機被終止執(zhí)行。
到此,相信大家對“行為狀態(tài)機怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。