解决那类问题
解决命令发出者和接受者的耦合,所有的操作请求都可看作命令。所有的处理类都可看作接受者,当我们对请求排队,支持取消的时候,这个时候就可以使用命令模式。
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
将请求封装成对象,符合OOP的设计思想,当将客户的单个请求封装成对象以后,我们就可以对这个请求存储更多的信息,使请求拥有更多的能力
类图
hystrix的命令模式
待定
体现面向对象哪些特点
- 命令发出者和接受者的完全分离,通过命令来产生相互关系。
- 一切皆为对象,请求操作对象化。
- 单一职责,每个具体命令实现单一化。
个人体会
命令模式在代码解耦方面做得比较,发出者和接受者完全分离,这样接受者变化是比较好处理的,还有一点命令可以为一个比较复杂的对象,可以包含的信息比较多,如hystrix的命令模式,另外由于都依赖命令接口,统一处理也比较方便。