java_246_GOF23设计模式_命令模式_数据库事务机制底层架构实现_撤销和回复_练习

命令模式command
在这里插入图片描述
在这里插入图片描述
//----------------真正的命令执行者-----------------------
package java_246_GOF23设计模式_命令模式_数据库事务机制底层架构实现_撤销和回复_练习;
/**
真正的命令执行者
/
public class Receiver {//Receiver接受者
void action(){//action行动
System.out.println(“Receiver.action()”+";战士正在执行命令");
}
}
//--------------发布命令者---------------
package java_246_GOF23设计模式_命令模式_数据库事务机制底层架构实现_撤销和回复_练习;
/

  • 发布命令者
    /
    public interface Command {//Command领导
    /
    *

    • 这个方法是一个返回结果为空的方法
    • 实际项目中,可以根据需求设计多个不同的方法
      */
      void execute();//execute执行
      }
      //实现类;ConcreteCommand具体命令
      class ConcreteCommand implements Command{
      private Receiver receiver;//命令的真正执行者

    public ConcreteCommand(Receiver receiver) {
    super();
    this.receiver = receiver;
    }

    public void execute() {
    //这里可以做;命令真正执行前或后,执行相关的处理;如:记录日志等等
    receiver.action();//调用真正执行者
    }
    }
    //-------------------命令的调用者-------------
    package java_246_GOF23设计模式_命令模式_数据库事务机制底层架构实现_撤销和回复_练习;
    /**
    *命令的调用者
    */
    public class Invoke {//Invoke调用
    //发起什么样的命令
    private Command command;//可以是一条也可以是多条;通过容器包含进去;List容器加入多个命令对象
    //进行批处理;数据库底层的事务管理就是类似的结构

    public Invoke(Command command) {
    super();
    this.command = command;
    }
    //创建业务方法,用于调用命令类的方法
    public void call(){//execute呼叫
    command.execute();
    }
    }
    //--------------------测试-----------------------
    package java_246_GOF23设计模式_命令模式_数据库事务机制底层架构实现_撤销和回复_练习;

public class Client {
public static void main(String[] args) {
Command c = new ConcreteCommand(new Receiver());
Invoke i = new Invoke©;//真正的调用者
i.call();

	new Receiver().action();//也可以这样写,结果一样;但扩展性没有上面的代码好,无法适应各种变化
}

}
//---------------结果------------------
在这里插入图片描述

类图
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值