命令模式
在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个。我们只需在程序运行时指定具体的请求接收者即可,此时可以使用命令模式来进行设计,使得请求发送者和接受者之间消除耦合,让对象的调用关系更加灵活。
命令模式可以对发送者和接受者完全解耦,发送者和接受者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。这就是命令模式的动机。
例子
命令的执行者
1 |
|
抽象命令接口
1 |
|
具体命令实现类
1 |
|
调用者类
这里假设为遥控器
1 |
|
测试类
1 | public void test() { |
总结
命令模式的好处在于可以将命令的请求这和命令的执行者进行解耦,但是在复杂场景下,命令类会变得很多,不方便进行管理。