js设计模式(11)---命令模式
0.前言
早上好,早晨的时光总是美好的,坐在空调屋里,看着外边的蓝天白云,不停地敲击着键盘,多么美好地享受,也许屌丝就是如此容易满足。
1.什么是命令模式?
用于将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;可以对请求排队或记录请求日志以及执行可撤销的操作。也就是说该模式旨在将函数的调用、请求和操作封装成一个单一的对象,然后对这个对象进行一系列的处理。此外,可以降低调用对象和接受对象之间的耦合,提高了模块化程度。
2.使用条件
命令模式的主要用途是把调用对象和接受对象分割开,降低代码的耦合,提高模块化程度,在创建用户界面方面非常有用;二、请求需要排队延迟、不受限制地取消,那么就可以使用该模式。
3.代码说明
var Calculator={ add:function(x,y){ return x+y; }, substract:function(x,y){ return x-y; }, multiply:function(x,y){ return x*y; }, divide:function(x,y){ return x/y; } } Calculator.calc =function(command){ return Calculator[command.type](command.op1,command.opd2) }; Calculator.calc({type:'add',op1:1,op2:1}); Calculator.calc({type:'substract',op1:5,op2:2}); Calculator.calc({type:'multiply',op1:5,op2:2}); Calculator.calc({type:'divide',op1:8,op2:4});
4.个人理解
1.命令模式是为了把一个请求封装成一个对象,这样就可以用多个请求对客户进行参数化;
2.好处:降低调用者和接受者之间的耦合性,提高模块化;可以对请求进行排队、记录请求日记、执行可撤销的操作;
3.在创建用户界面是有很好的用处,可以实现界面元素和实际操作类的分离。