第九章 命令模式


命令模式:將請求與實現(xiàn)解耦并封裝城獨立對象,從而使不同的請求對客戶端的實現(xiàn)參數(shù)化慷丽。我們在使用jquery的動畫時會如下面的形式調(diào)用:

    $(selector).animate({params},speed,callback);

這種就是一種命令模式款熬。

例子

以一個游戲的實現(xiàn)為例,當用戶按下W潮酒、S坟冲、A磨镶、D時角色會有不同的動作,而且有回放功能記錄以前的操作:

  var Ryu = {
    attack: function(){
        console.log("攻擊");
    },
    defense: function(){
        console.log("防守");
    },
    jump: function(){
        console.log("跳躍");
    },
    crouch: function(){
        console.log("蹲下");
    }
};

var makeCommand = function(receiver, state){
    return function(){
        receiver[state]();
    }
};

var commands = {
    "119": "jump",      // W
    "115": "crouch",    // S
    "97": "defense",    // A
    "100": "attack"     // D
};

var commandStack = [];

document.onkeypress = function( ev ){
    var keyCode = ev.keyCode,
        command = makeCommand( Ryu, commands[keyCode] );

    if(command){
        command();
        commandStack.push(command);
    }
};
document.getElementById("replay").onClick = function(){
    var command;
    while( command = commandStack.shift() ){
        command();
    }
}

回放功能很好的體現(xiàn)了命令模式的作用健提。js中函數(shù)是一等公民琳猫,命令模式相當于記錄了一個個的執(zhí)行函數(shù)。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末私痹,一起剝皮案震驚了整個濱河市脐嫂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌紊遵,老刑警劉巖账千,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異暗膜,居然都是意外死亡匀奏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門学搜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娃善,“玉大人,你說我怎么就攤上這事瑞佩【刍牵” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵炬丸,是天一觀的道長咧最。 經(jīng)常有香客問我,道長御雕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任滥搭,我火速辦了婚禮酸纲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瑟匆。我一直安慰自己闽坡,他們只是感情好,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疾嗅,像睡著了一般外厂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上代承,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天汁蝶,我揣著相機與錄音,去河邊找鬼论悴。 笑死掖棉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的膀估。 我是一名探鬼主播幔亥,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼察纯!你這毒婦竟也來了帕棉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤饼记,失蹤者是張志新(化名)和其女友劉穎香伴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體握恳,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡瞒窒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了乡洼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崇裁。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖束昵,靈堂內(nèi)的尸體忽然破棺而出拔稳,到底是詐尸還是另有隱情,我是刑警寧澤锹雏,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布巴比,位于F島的核電站,受9級特大地震影響礁遵,放射性物質(zhì)發(fā)生泄漏轻绞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一佣耐、第九天 我趴在偏房一處隱蔽的房頂上張望政勃。 院中可真熱鬧,春花似錦兼砖、人聲如沸奸远。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懒叛。三九已至丸冕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間薛窥,已是汗流浹背胖烛。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拆檬,地道東北人洪己。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像竟贯,于是被迫代替她去往敵國和親答捕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

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

  • 1 場景問題# 1.1 如何開機## 估計有些朋友看到這個標題會非常奇怪屑那,電腦裝配好了拱镐,如何開機?不就是按下啟動按...
    七寸知架構閱讀 2,839評論 1 59
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,432評論 24 450
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,339評論 25 707
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品持际,去做同樣的事情沃琅,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,784評論 2 17
  • 大連越野就是塊臭豆腐蜘欲,聞著臭益眉,吃著香。 美麗如斯的海濱城市大連姥份,竟然有著那么多其貌不揚的小土坡郭脂,垃圾遍地,植被稀少...
    生人漫步閱讀 11,392評論 2 50