亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript設(shè)計模式之命令模式

瀏覽:4日期:2023-10-02 15:53:23

命令模式是JavaScript設(shè)計模式中行為型的一種設(shè)計模式;

定義:向某些對象發(fā)送請求,但是并不知道被請求的操作具體是什么,所以我們希望以一種松耦合的方式來設(shè)計程序,使得請求發(fā)送者和接收者之間能夠消除彼此之間的耦合關(guān)系;而我們的這種松耦合的方式就是命令模式;

白話解釋:假如你是你們公司研發(fā)部門團隊leader,這時你們領(lǐng)導(dǎo)分布給你一個任務(wù),你粗略的看了一下,很簡單的需求比較容易實現(xiàn);而你作為團隊leader,每天肯定會有很多事情,所以你準(zhǔn)備把需求直接丟給組員去開發(fā)和實現(xiàn);領(lǐng)導(dǎo)根本不在意是你做的還是你讓誰做的,領(lǐng)導(dǎo)要的只是最終成果!這里領(lǐng)導(dǎo)就是命令的發(fā)布者,而你就是命令的接收者;

代碼實現(xiàn):

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='ie=edge'> <title>Document</title></head><body><button id='button1'>發(fā)布命令給前端</button><button id='button2'>發(fā)布命令給后臺</button></body><script> var button1 = document.getElementById('button1'); var button2 = document.getElementById('button2'); // 定義命令 var command = function(Executor,func){Executor.onclick = func; } // 定義領(lǐng)導(dǎo) var Leader = {};Leader.teamleader = {web:function(){ console.log('前端馬上完成');},java:function(){console.log('后臺馬上完成')} } command(button1,Leader.teamleader.web); command(button2,Leader.teamleader.java);</script></html>

運行結(jié)果:

JavaScript設(shè)計模式之命令模式

這里的將命令對象單獨的定義為一個方法,根據(jù)參數(shù)執(zhí)行不同的任務(wù)。點擊不同按鈕的時候,執(zhí)行不同的命令;

宏命令:

宏命令是一組命令的集合,通過執(zhí)行宏命令的方式可以一次性執(zhí)行一批命令;

電腦開機自啟動項:現(xiàn)在很多軟件都默認添加了電腦開機自啟動,就是我們電腦開機之后默認啟動某些特定的軟件;這就是一種宏命令的場景;

var QQCommand = { excute:function(){console.log('自啟動QQ成功'); }}var weChatCommand = { excute:function(){console.log('自啟動微信成功'); }}var MacroCommand = function(){ return {list:[],add:function(command){ this.list.push(command);},excute:function(){ for(var i = 0,command;command = this.list[i++];){command.excute(); }} }}var macroCommand = MacroCommand();macroCommand.add(QQCommand);macroCommand.add(weChatCommand);macroCommand.excute();

上面的代碼中,我們在宏命令對象中定義了一個list數(shù)組,然后通過add方法進行添加到執(zhí)行隊列中,所謂的執(zhí)行隊列就是list這個數(shù)組,然后我們通過循環(huán)來依次執(zhí)行命令,這就產(chǎn)生了我們的宏命令,通過一個命令一鍵啟動多個任務(wù);

命令模式其實就是定義一個命令對象,請求發(fā)布者通過參數(shù)化的形式傳入?yún)?shù)來進行執(zhí)行具體不同的操作,來達到請求發(fā)布者與接收者的解耦;

最后的話:

本系列一共寫了十篇常用的JavaScript設(shè)計模式的文章,參考了大量的資料加上自己的理解希望以最通俗易懂的方式來講給大家聽,由于本人水平和精力有限,理解有誤的地方請及時指出,設(shè)計模式系列文章暫時先擱置,后續(xù)再補充;下個月開始準(zhǔn)備系統(tǒng)學(xué)習(xí)ES6,完成ES6系列文章;

以上就是JavaScript設(shè)計模式之命令模式的詳細內(nèi)容,更多關(guān)于JavaScript設(shè)計模式的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 欧美一级特级毛片 | 鲁一鲁中文字幕久久 | 美女国产福利视频 | 亚洲日韩第一页 | 黄站无毒不卡秒播网站免费观看 | 精品国产一区二区三区四区色 | 一 级 黄 色 大片 | 俄罗斯一级成人毛片 | 国产在线不卡视频 | jiucao在线观看精品 | 欧美成人片在线 | 久久久久综合国产 | 国产限制级在线 | 亚洲第一页中文字幕 | 97国产伦子在线观看 | 国产 欧美 日产久久 | 欧美在线看欧美高清视频免费 | 欧美成人777 | 欧美一级毛片视频 | 欧美αv日韩αv另类综合 | 两性色午夜视频自由成熟的性 | 国产精品揄拍100视频最近 | 最新国产午夜精品视频成人 | 亚洲视频在线观看网址 | 男女毛片免费视频看 | 国产a久久精品一区二区三区 | 全免费a级毛片免费看不卡 全免费a级毛片免费看视频免 | 91嫩草国产在线观看免费 | 欧美亚洲另类一区中文字幕 | 中文字幕一区在线观看 | 亚洲一区二区三区在线免费观看 | 色噜噜狠狠狠综合曰曰曰88av | 婷婷久久五月天 | 国产情趣酒店鸳鸯浴在线观看 | 国产网站麻豆精品视频 | 一级做人爰a全过程免费视频 | 午夜国产亚洲精品一区 | 性xxxxxxx18老师 | 国产精品长腿丝袜第一页 | 国产视频不卡在线 | 久久精品a一国产成人免费网站 |