本篇內(nèi)容主要講解“行為狀態(tài)機怎么理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“行為狀態(tài)機怎么理解”吧!
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),隆安企業(yè)網(wǎng)站建設(shè),隆安品牌網(wǎng)站建設(shè),網(wǎng)站定制,隆安網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,隆安網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
概要
行為狀態(tài)機可以用于定義下面的場景
主動類的類目行為
一個行為化類目的除了類目行為以外的擁有行為。
沒有對應(yīng)的行為化類目的獨立行為
對應(yīng)行為特征的方法(即操作或接受)
抽象語法
語義
1、狀態(tài)機
行為狀態(tài)機包含了一個或多個區(qū)域,每個區(qū)域包含一個圖(可能是分層的),圖中又包含一組被被圓弧形遷移相互連接的頂點。當(dāng)適當(dāng)?shù)氖录l(fā)生時,狀態(tài)機會被觸發(fā)執(zhí)行。狀態(tài)機的特定執(zhí)行表現(xiàn)為一組經(jīng)過一個或多個區(qū)域有效路徑的遍歷,觸發(fā)的方式是發(fā)行一個與圖中有效觸發(fā)條件相匹配的事件發(fā)生。觸發(fā)條件匹配的原則會在后面描述。在這樣一個遍歷過程中,狀態(tài)機實例可能會執(zhí)行一個隱含的復(fù)雜的行為序列,這些行為和圖中被通過的特定元素聯(lián)系在一起(遷移效果,狀態(tài)入口,狀態(tài)出口行為等)
如果狀態(tài)機有某種行為類目上下文,那么這個類目定義了哪些信號和調(diào)用事件可以適用于那個狀態(tài)機,也定義了哪些特征對狀態(tài)機擁有的行為可用。狀態(tài)機的信號觸發(fā)條件和調(diào)用事件觸發(fā)條件根據(jù)這個類目的接受和操作被分別定義。這些特征可以被用于定義狀態(tài)機的消息事件觸發(fā)條件。
如果狀態(tài)機沒有行為類目上下文(即它是一個獨立行為),那么它的觸發(fā)條件不需要綁定到類目的接受和操作上。例如,這樣的狀態(tài)機可能被定義為以觸發(fā)條件為模板參數(shù)的模板,這樣,狀態(tài)機可以通過為模板參數(shù)綁定合適的調(diào)用事件和信號事件來配合不同的上下文類目一起使用。
如果狀態(tài)機定義了一個行為特征(操作或接受)的方法,那么狀態(tài)機的參數(shù)應(yīng)該和行為特征(參見13.2.3小節(jié))的參數(shù)相匹配。這意味著通過參數(shù),狀態(tài)機執(zhí)行可以參照行為特征的參數(shù)。否則,執(zhí)行中的狀態(tài)機實例訪問分發(fā)的事件發(fā)生和它的關(guān)聯(lián)數(shù)據(jù)的方法無定義(參見13小節(jié))。
按照定義,狀態(tài)機執(zhí)行的調(diào)用導(dǎo)致被觸發(fā)的效果(參見13.3.3小節(jié))和一個因此而存在的,與這個執(zhí)行相關(guān)聯(lián)的事件池。狀態(tài)機的這個事件池可能屬于它的上下文類目對象,或者當(dāng)狀態(tài)機定義了一個行為特征的方法時,屬于擁有的這個行為特征的類目的實例。
由于它的事件驅(qū)動性質(zhì),狀態(tài)機執(zhí)行可以是遷移中或狀態(tài)內(nèi),在兩者之間交替。當(dāng)分發(fā)的某個事件和某個遷移的至少一個觸發(fā)條件匹配時,它處在遷移中。在遷移中,它可能會執(zhí)行若干與選中路徑想關(guān)聯(lián)的行為。
注意:當(dāng)存在doActivity行為與活動狀態(tài)配置相關(guān)聯(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),也可以擁有自己的終止?fàn)顟B(tài)。
區(qū)域的缺省激活發(fā)生在它被隱含進入的時候,就是說,它不是被一個終止于區(qū)域元素頂點(例如狀態(tài)或歷史偽節(jié)點)的輸入遷移進入的。但是應(yīng)該
1)通過一個終止于包含區(qū)域的狀態(tài)的(局部或外部)遷移,或者
2)如果是頂層區(qū)域,當(dāng)狀態(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ā)生的。當(dāng)正交狀態(tài)的一個區(qū)域被明確地激活后,將導(dǎo)致它所有的正交區(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)和終止?fàn)顟B(tài)表現(xiàn)為穩(wěn)定頂點,當(dāng)狀態(tài)機執(zhí)行進入它們以后,將停留在這些狀態(tài)的內(nèi)部,直到某些可以引起遷移的事件發(fā)生,或者狀態(tài)機被終止執(zhí)行。
到此,相信大家對“行為狀態(tài)機怎么理解”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!