命令模式(command)

Command抽象命令类

   ConcreteCommand具体命令类

   Invoker调用者/请求者

      请求的发送者,它通过命令对象来执行请求。一个调用者并不需要在设计时确定其接收者,因此它只与抽象命令类之间存在关联。在程序运行时,将调用命令对象execute(),间接调用接收者的相关操作。

   Receiver接收者

      接收者执行与请求相关操作,具体实现对请求的业务处理。

      为抽象前,实际执行操作内容的对象。

Client客户类

    在客户类中需要创建调用者对象、具体命令类对象,在创建具体命令对象时指定对应的接收者。发送者和接收者之间没有直接关系,都通过命令对象间接调用。

publicclass Client {

   publicstaticvoid main(String[] args) {

      Command c = new ConcreteCommand(new Receiver());

      Invoce i = new Invoce(c);

      i.call();

 

   }

}

//真正的执行者

class Receiver{

   publicvoid action(){

      System.out.println("receiver.action()");

   }

}

 

interface Command{

   /*

    * 这个方法是一个返回结果为空的方法

    * 实际项目中,可以根据需求设计多个不同的方法

    */

    void execute();

}

 

class ConcreteCommand implements Command{

    private Receiver receiver;//命令的真正执行者

   

    public ConcreteCommand(Receiver receiver){

       super();

       this.receiver = receiver;

    }

   @Override

   publicvoid execute() {

      //命令真正执行前,执行后,执行相关的处理

      receiver.action();

   }

}

//调用者/发起者

class Invoce{

  

   private Command command;//也可以通过容器容纳很多命令对象,执行批处理

  

   public Invoce(Command command){

      super();

      this.command = command;

   }

   //业务方法,用于调用命令类的方法

   publicvoid call(){

      command.execute();

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值