激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - JavaScript設(shè)計(jì)模式之命令模式

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

2022-03-10 16:31有夢(mèng)想的咸魚前端 js教程

這篇文章主要介紹了JavaScript設(shè)計(jì)模式之命令模式,對(duì)設(shè)計(jì)模式感興趣的同學(xué),可以參考下

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

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

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

代碼實(shí)現(xiàn):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!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ā)布命令給后臺(tái)</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("后臺(tái)馬上完成")
        }
    }
 
    command(button1,Leader.teamleader.web);
    command(button2,Leader.teamleader.java);
</script>
</html>

運(yùn)行結(jié)果:

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

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

宏命令:

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var QQCommand = {
    excute:function(){
        console.log("自啟動(dòng)QQ成功");
    }
}
 
var weChatCommand = {
    excute:function(){
        console.log("自啟動(dòng)微信成功");
    }
}
 
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();

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

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

最后的話:

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

以上就是JavaScript設(shè)計(jì)模式之命令模式的詳細(xì)內(nèi)容,更多關(guān)于JavaScript設(shè)計(jì)模式的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://www.cnblogs.com/dengyao-blogs/p/11736358.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 福利免费在线观看 | 国产视频在线免费观看 | 国产日韩a | 91精品国产综合久久久动漫日韩 | 欧美精品成人 | 久久久久亚洲美女啪啪 | 国产精品久久久免费看 | 国产精品成人久久久久a级 男女无遮挡羞羞视频 | 中国一级毛片在线视频 | www久 | 国产精品一区二区手机在线观看 | 午夜视频久久 | 欧美中文字幕一区二区三区亚洲 | 亚洲一区在线免费视频 | 羞羞网站视频 | 国产污污视频 | 国产成人精品免费视频大全最热 | 成人免费在线观看视频 | 91精品最新国内在线播放 | 美女毛片儿 | 99欧美精品 | 久久成人激情视频 | 国产在线观看 | 一区在线免费视频 | 国产69精品99久久久久久宅男 | 国产午夜精品久久久久久久蜜臀 | 男女羞羞在线观看 | 91成人久久 | 亚洲一区在线看 | 欧美日韩在线视频一区 | 久久99精品久久久久久园产越南 | 欧美日韩国产综合网 | 精品人成 | 91在线视频在线观看 | 粉嫩一区 | 伊人亚洲精品 | 国产麻豆久久 | www.com超碰| 欧日韩| 免费国产自久久久久三四区久久 | 精品国产乱码一区二区三区四区 |