第二篇:狀態(tài)機(jī)模式

狀態(tài)機(jī)模式非常簡單,實(shí)際上任何一個類就是一個狀態(tài)機(jī)模式。
class A{ public: void fun(int a,int b); }
任何一個類的成員函數(shù)(靜態(tài)成員函數(shù)除外)都包含一個this指針指向一個本類對象。
事實(shí)上,A a;聲明一個對象的時候,成員函數(shù)和其中的成員變量并不在同一個地方,正是因?yàn)橛辛藅his指針蚤假,成員函數(shù)才能操縱成員變量。

狀態(tài)機(jī)模式

本來所有的狀態(tài)的切換全部都是在一個類(譬如A類)中吧兔,但是因?yàn)槿绻麪顟B(tài)很多磷仰,狀態(tài)切換的函數(shù)就會變得很復(fù)雜。所以將這部分全部拉了出來境蔼,單獨(dú)寫成state類灶平。
class A{ public: void changeState(State* state); //一般來說類狀態(tài)的改變邏輯寫在這個函數(shù)里,使用狀態(tài)模式之后箍土,寫在狀態(tài)類中 void update(float dt); state* mCurState; //標(biāo)志當(dāng)前的狀態(tài) }
class State{ //某一個狀態(tài)下逢享,要執(zhí)行的行為。注意其中有指向類A的指針(這就是關(guān)鍵) virtual void excute(A* a) = 0; }
所以A添加的任何一個狀態(tài)吴藻,只需繼承State類瞒爬,并重寫excute函數(shù)即可。在excute函數(shù)中寫本狀態(tài)要執(zhí)行的邏輯沟堡。
而類A的update只需:
void A::update(float dt){ mCurState->excute(this); }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侧但,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子航罗,更是在濱河造成了極大的恐慌禀横,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伤哺,死亡現(xiàn)場離奇詭異燕侠,居然都是意外死亡者祖,警方通過查閱死者的電腦和手機(jī)立莉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門绢彤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜓耻,你說我怎么就攤上這事茫舶。” “怎么了刹淌?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵饶氏,是天一觀的道長。 經(jīng)常有香客問我有勾,道長疹启,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任蔼卡,我火速辦了婚禮喊崖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雇逞。我一直安慰自己荤懂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布塘砸。 她就那樣靜靜地躺著节仿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掉蔬。 梳的紋絲不亂的頭發(fā)上廊宪,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音女轿,去河邊找鬼挤忙。 笑死,一個胖子當(dāng)著我的面吹牛谈喳,可吹牛的內(nèi)容都是我干的册烈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼婿禽,長吁一口氣:“原來是場噩夢啊……” “哼赏僧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扭倾,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤淀零,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膛壹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驾中,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唉堪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肩民。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唠亚。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖持痰,靈堂內(nèi)的尸體忽然破棺而出灶搜,到底是詐尸還是另有隱情,我是刑警寧澤工窍,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布割卖,位于F島的核電站,受9級特大地震影響患雏,放射性物質(zhì)發(fā)生泄漏鹏溯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一淹仑、第九天 我趴在偏房一處隱蔽的房頂上張望丙挽。 院中可真熱鬧,春花似錦攻人、人聲如沸取试。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞬浓。三九已至,卻和暖如春蓬坡,著一層夾襖步出監(jiān)牢的瞬間猿棉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工屑咳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萨赁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓兆龙,卻偏偏與公主長得像杖爽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子紫皇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉慰安,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,686評論 0 9
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法聪铺,內(nèi)部類的語法化焕,繼承相關(guān)的語法,異常的語法铃剔,線程的語...
    子非魚_t_閱讀 31,597評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理撒桨,服務(wù)發(fā)現(xiàn)查刻,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 姓名:謝新葵 公司:寧波大發(fā)化纖有限公司 寧波盛和塾《六項(xiàng)精進(jìn)》第235期學(xué)員感謝二組 【日精進(jìn)打卡第84天】 知...
    sandy201704閱讀 119評論 0 0
  • 大山里的黑夜 往左分不清 往左也看不見 繼續(xù)往左 轟隆轟隆只有聲音作響 是大山凤类,還是黑夜 分不清的 已是一體 明天...
    長道赫書閱讀 336評論 3 6