定义:

将"请求"封装成对象,以便使用不同的请求

命令模式解决了应用程序中对象的职责以及它们之间的通信方式(即命令者和执行者完全解耦)

 

适用场景

请求调用者和请求接收者需要解耦,使得调用者和接收者不直接交互

需要抽象出等待执行的行为

 

优点

降低耦合

容易扩展新命令或者一组命令

 

缺点:

命令的无限扩展会增加类的数量,提高系统实现复杂度

 

示例DEMO&UML:

源码链接:https://github.com/NoSuchClass/design_pattern/tree/master/src/behavioral/command

 

In JDK

与线程相关的Runnable接口: