设计模式之命令模式

命令模式

在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)。

模式作用:

  1. 将函数的封装,请求,调用结合为一体
  2. 调用具体的函数解耦命令对象与接收对象
  3. 提高程序模块化的灵活性

注意事项:

  1. 不需要接口一致,直接调用函数即可,以免造成浪费

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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"
})