什么网站能免费做推广/网站设计与网页制作
Javascript设计模式 - 09 - 命令模式
简介
将执行的命令封装,解决命令发起者与命令执行者之间的耦合,每一条命令表示着一系列的操作,命令的使用者不必了解命令执行者的命令接口是如何实现的,只需要知道如何调用
用途
有的时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知被请求的操作是什么,此时希
JavaScript 作为将函数作为一等对象的语言,命令模式早已融入到语言中了
var command = {click: function (msg) {console.log('click and do something', msg);},change: function (msg) {console.log('change and do something', msg);},blur: function (msg) {console.log('blur and do something', msg);},on: function (config) {this[config.type](config.msg);}}command.on({type: 'click', msg: 'onClick'}); // click and do something onClickcommand.on({type: 'blur', msg: 'onBlur'}); // blur and do something onBlur
宏命令
宏命令是一组命令的集合,通过执行宏命令的方式,可以依次执行一批命令
// 创建子命令var closeDoorCommand = {execute: funciton () {console.log('关门');}}var openPcCommand = {execute: funciton () {console.log('开电脑');}}var openQQCommand = {execute: funciton () {console.log('登录QQ');}}// 创建宏命令var MacroCommand = funciton () {return {commandsList: [],add: function (command) {this.commandsList.push(command);},execute: function () {for (var i = 0, command; command = this.commandsList[i++];) {command.execute();}}}}// 执行var macroCommand = MacroCommand();macroCommand.add(closeDoorCommand);macroCommand.add(openPcCommand);macroCommand.add(openQQCommand);macroCommand.execute();
文章列表
- javascript设计模式 – 设计原则
- JavaScript设计模式–高阶函数
- Javascript 设计模式 - 01 - 原型模式
- Javascript 设计模式 - 02 - 单例模式
- Javascript 设计模式 - 03 - 建造者模式
- Javascript 设计模式 - 04 - 工厂模式
- Javascript 设计模式 - 05 - 外观模式
- Javascript 设计模式 - 06 - 代理模式
- Javascript 设计模式 - 07 - 观察者模式(发布订阅模式)
- Javascript 设计模式 - 08 - 策略模式
- Javascript 设计模式 - 09 - 命令模式
- Javascript 设计模式 - 10 - 迭代器模式
- Javascript 设计模式 - 11 - 职责链模式
- Javascript 设计模式 - 12 - 适配器模式
- Javascript 设计模式 - 13 - 模板方法
- Javascript 设计模式 - 14 - 组合模式
- Javascript 设计模式 - 15 - 享元模式
- Javascript 设计模式 - 16 - 中介者模式
- Javascript 设计模式 - 17 - 装饰者模式
- Javascript 设计模式 - 18 - 状态模式