這篇文章主要講解了如何使用javascript中的命令模式,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
天心ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
介紹:命令模式是一種數據驅動的設計模式,將請求以命令的形式包裹在對象中,并傳遞給調用對象。命令模式的核心在于引入了命令類,通過命令類來降低發送者和接受者的耦合度。
定義:將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作。命令模式是一種對象行為型模式,其別名為動作(Action)模式或事務(Transaction)模式。
場景:我們通過買賣股票的場景來實現下命令模式,
示例:
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
這個例子里面SellStock,BuyStock為命令類,執行實際的命令。Broker用來接收命令,并在指定的時機執行命令。Stock為請求受體,
回頭看下定義:sellStock,buyStock就是將命令封裝好的對象,你可以通過對象的execute方法執行該命令。通過擴展placeOrders方法可以支持請求隊列或者記錄請求日志,以及支持可撤銷等操作
命令模式總結:
優點:
* 降低系統耦合度
* 新的命令很容易的加入到系統中
缺點:
* 使用命令模式可能會導致某些系統有過多的具體命令類
適用場景:
* 系統需要將請求調用者和請求接受者解耦
看完上述內容,是不是對如何使用javascript中的命令模式有進一步的了解,如果還想學習更多內容,歡迎關注創新互聯行業資訊頻道。
文章標題:如何使用javascript中的命令模式
網站URL:http://m.2m8n56k.cn/article32/jdsjsc.html
成都網站建設公司_創新互聯,為您提供網站設計公司、定制網站、網站維護、服務器托管、建站公司、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯