91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用javascript中的命令模式

發布時間:2020-08-01 14:51:04 來源:億速云 閱讀:144 作者:小豬 欄目:web開發

這篇文章主要講解了如何使用javascript中的命令模式,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

介紹:命令模式是一種數據驅動的設計模式,將請求以命令的形式包裹在對象中,并傳遞給調用對象。命令模式的核心在于引入了命令類,通過命令類來降低發送者和接受者的耦合度。

定義:將一個請求封裝為一個對象,從而可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作。命令模式是一種對象行為型模式,其別名為動作(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中的命令模式有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民勤县| 万盛区| 卓资县| 土默特左旗| 河曲县| 洞口县| 祁阳县| 玉林市| 汝阳县| 泰兴市| 南宁市| 濮阳市| 油尖旺区| 刚察县| 稻城县| 德州市| 新乐市| 民乐县| 宝丰县| 伊宁市| 澄城县| 湘潭县| 兰考县| 乾安县| 澄江县| 清苑县| 孙吴县| 潮安县| 无棣县| 郎溪县| 雅江县| 永寿县| 大英县| 林西县| 临夏县| 周至县| 蕉岭县| 延川县| 新干县| 阿拉善左旗| 屏东市|