定义
- 将“请求”封装成对象 ,以便使用不同的请求;
- 命令模式解决了应用程序中对象的职责以及它们之间的通信方式;
适用场景
- 请求调用者和请求接收者需要解耦,使得调用者和接受者不直接交互;
- 需要抽象出等待执行的行为;
- 我觉得哈,命令模式适用于这样的场景:系统中已经有很多类提供了很多功能,现在要新写一个业务要调用这些类的功能,把所有这些类都组合到新业务的类中就太不优雅了,这时候让新业务类组合一个新接口,然后各种新建新接口的实现类,在各种实现类中组合系统现有的新业务类要用到的类,然后新业务类就可以面向一个新接口编程,在不同的业务点更换不同的新接口的实现类;或者新业务类维护一个新接口的集合,把所实现新接口的实现都放进去,用的时候从集合中取;关键点在于这些现成的类现在可以用一个新接口调用了,完美~
优点
- 降低耦合;
- 容易扩展新命令或者一组命令;
缺点
- 命令的无限扩展会增加类的数量,提高系统是实现复杂度;
相关设计模式
- 命令模式 & 备忘录模式;