命令模式
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。
模式作用:
- 将函数的封装,请求,调用结合为一体
- 调用具体的函数解耦命令对象与接收对象
- 提高程序模块化的灵活性
注意事项:
- 不需要接口一致,直接调用函数即可,以免造成浪费
例子:
var lian={};
lian.paobing=function(pao_num){
console.log(pao_num+"炮"+"开始战斗");
}
lian.bubing=function(bubing_num){
console.log(bubing_num+"人"+"开始战斗")
}
lian.lianzhang=function(mingling){
lian[mingling.type](mingling.num)
}
lian.lianzhang({
type:"paobing",
num:"100"
})
lian.lianzhang({
type:"bubing",
num:"50"
})