定义:
将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。
特点:
降低系统的耦合度。(优点)
- 增加或删除命令非常方便。(优点)
- 可以实现宏命令。(优点)
-
通常适用场景:
当系统需要将请求调用者与请求接收者解耦时,命令模式使得调用者和接收者不直接交互。
- 当系统需要随机请求命令或经常增加或删除命令时,命令模式比较方便实现这些功能。
当系统需要执行一组操作时,命令模式可以定义宏命令来实现该功能。
demo代码:
命令类 ```java public interface Command{ void execute(); }
public class ConcreteCommand implements Command{ private Executor executor; public ConcreteCommand(){ executor=new Executor(); } @Override public void execute(){ executor.action(); } }
- 发送者和执行者```java//发命令public class Sender{private Command command;public Sender(Command command){this.command=command;}public void command(){System.out.println("执行command");command.execute();}}//执命令具体类public class Executor{public void action(){System.out.println("action()被调用");}}
- 测试
public static void main(String[] args) { Command command=new ConcreteCommand(); Sender sender =new Sender(command); sender.command(); }
