一、核心思想
命令模式是一个对象行为模式。主要解决在软件构件过程中行为发起者和行为构建者之间的紧耦合的问题。
将一个发起者请求封装成一个对象,将发起者和执行者分开,通过命令的方式来实现。
包含三个类:
请求发起者Invoker:
请求执行者Receiver:
命令MyCommand:
关系图:
todo
codes:
- public class MyCommand implements Command {
- private Receiver receiver;
- public MyCommand(Receiver receiver) {
- this.receiver = receiver;
- }
- @Override
- public void execute() {
- receiver.action();
- }
- }
- public class Invoker {
- private Command command;
- public Invoker(Command command) {
- this.command = command;
- }
- public void action(){
- command.execute();
- }
- }
- public class Test {
- public static void main(String[] args) {
- Receiver receiver = new Receiver();
- Command cmd = new MyCommand(receiver);
- Invoker invoker = new Invoker(cmd);
- invoker.action();
- }
- }
二、何时使用
命令模式的目的就是达到命令的发出者和执行者之间解耦
凡是需要将调用和实现分开处理的情况都可以使用命令模式。
三、java中的应用
AWT界面事件处理