概念
命令模式用于将一个请求封装成一个对象,从而可以用不同的参数对客户进行参数化,该模式将函数的调用请求和操作封装成一个单一的对象,然后对这个对象进行单一的处理,简而言之分为三个对象:
1.发起者:发出调用命令即可,具体如何执行,谁来执行并不清楚。
2.接收者:有对应的接口处理不同的命令,至于命令是什么,谁发出的,这不重要。
3.命令对象:上面我们说过,我们将发起者和接受者分开了,而这需要这个桥梁链接起来,这就是命令对象,命令对象接受发送者的调用,=然后调用接受者的相应接口。
作用以及注意事项
作用:
1.将封装、请求、调用结合为一体。
2.提高程序模块化的灵活性。
注意事项:
不需要借口一致,直接调用函数即可,以免造成浪费。
实例
// 发送者 var setCommond = function(button, fn) { button.onClick = function() { fn() } }; // 执行命令者 var menu = { reFresh: function() { console.log("刷新"); }, add: function() { console.log("增加"); }, delete: function() { console.log("删除"); } }; // 命令对象 var commondObj = function(reciver) { return function() { reciver.reFresh(); } }; var commondObj1 = commondObj(menu); setCommond(btn1, commondObj1);
发送者(setCommond):不关心给哪个button,以及绑定什么事件,只要通过参数传入就好。
命令对象(commondObj):只需要接收到接受者的参数,当发送者发出命令时,执行就好。
接受者(menu):不用关心在哪里被调用被谁调用,只需要按需执行就好了。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
JS设计模式之建造者模式详解
JS的设计模式之构造函数模式详解
js设计模式之-单例模式的使用