图解命令模式
包含的角色
Client:客户端
Receive:接受者角色
Command:命令角色
ConcreteCommand:具体命令角色
Invoker:调用者角色
优缺点
优点:
1、降低了系统耦合度。
2、新的命令可以很容易添加到系统中去。
缺点:
使用命令模式可能会导致某些系统有过多的具体命令类。
目的
将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。
经典应用场景
认为是命令的地方都可以使用命令模式,比如:
1、GUI 中每一个按钮都是一条命令。
2、模拟 CMD。
总结
在某些场合,比如要对行为进行"记录、撤销/重做、事务"等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。