av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

javascript設(shè)計(jì)模式 ? 命令模式原理與用法實(shí)例分析

瀏覽:6日期:2023-11-03 08:55:49

本文實(shí)例講述了javascript設(shè)計(jì)模式 ? 命令模式原理與用法。分享給大家供大家參考,具體如下:

介紹:命令模式是一種數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)模式,將請(qǐng)求以命令的形式包裹在對(duì)象中,并傳遞給調(diào)用對(duì)象。命令模式的核心在于引入了命令類,通過命令類來降低發(fā)送者和接受者的耦合度。

定義:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志,以及支持可撤銷的操作。命令模式是一種對(duì)象行為型模式,其別名為動(dòng)作(Action)模式或事務(wù)(Transaction)模式。

場(chǎng)景:我們通過買賣股票的場(chǎng)景來實(shí)現(xiàn)下命令模式,

示例:

var Stock = function(){ this.name = ’baidu’; this.quantity = 100; this.buy = function(){ console.log(’購買了:’ + this.quantity + ’股’ + this.name); } this.sell = function(){ console.log(’賣出了:’ + this.quantity + ’股’ + this.name); }} var BuyStock = function(stock){ this.stock = stock; this.execute = function(){ this.stock.buy(); }} var SellStock = function(stock){ this.stock = stock; this.execute = function(){ this.stock.sell(); }} var Broker = function(){ this.orderList = []; this.takeOrder = function(order){ this.orderList.push(order); } this.placeOrders = function(){ this.orderList.map(function(item){ item.execute(); }) this.orderList = []; }} var stock = new Stock();var buyStock = new BuyStock(stock);var sellStock = new SellStock(stock); var broker = new Broker();broker.takeOrder(buyStock);broker.takeOrder(sellStock);broker.placeOrders();// 購買了:100股baidu// 賣出了:100股baidu

這個(gè)例子里面SellStock,BuyStock為命令類,執(zhí)行實(shí)際的命令。Broker用來接收命令,并在指定的時(shí)機(jī)執(zhí)行命令。Stock為請(qǐng)求受體,

回頭看下定義:sellStock,buyStock就是將命令封裝好的對(duì)象,你可以通過對(duì)象的execute方法執(zhí)行該命令。通過擴(kuò)展placeOrders方法可以支持請(qǐng)求隊(duì)列或者記錄請(qǐng)求日志,以及支持可撤銷等操作

命令模式總結(jié):

優(yōu)點(diǎn):* 降低系統(tǒng)耦合度* 新的命令很容易的加入到系統(tǒng)中

缺點(diǎn):* 使用命令模式可能會(huì)導(dǎo)致某些系統(tǒng)有過多的具體命令類

適用場(chǎng)景:* 系統(tǒng)需要將請(qǐng)求調(diào)用者和請(qǐng)求接受者解耦

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 一级特黄视频 | 久久久国产精品入口麻豆 | 91在线视频观看免费 | 特黄色一级毛片 | 超碰综合 | 91一区二区三区在线观看 | 欧美a级成人淫片免费看 | 色五月激情五月 | 观看av| 欧美一区二区免费 | 欧美成人a | 九色 在线 | 一区二区日本 | 亚洲精品1区2区3区 91免费看片 | 欧美日韩国产中文字幕 | 日韩中文字幕在线观看视频 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 99精品在线观看 | 成人在线精品视频 | 久久五月婷 | 午夜精品在线观看 | 日韩欧美三级在线 | 久草新在线 | 青春草国产| 在线观看亚 | 亚洲成人精品 | 玖玖视频免费 | 美女黄视频网站 | 欧美日韩一二三区 | 亚洲网站在线观看 | 日韩中文在线 | 日韩专区中文字幕 | 成人综合伊人 | 天天玩天天操天天干 | 干干干日日日 | 免费观看成人性生生活片 | 亚洲精品无 | 亚洲一区精品在线 | 亚洲视频一区在线 | 精品一区二区三区在线视频 | 一级a性色生活片久久毛片波多野 |