没有合适的资源?快使用搜索试试~ 我知道了~
设计模式学习笔记(十五)命令模式及在Spring JdbcTemplate 中的实现.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2022-07-09
14:10:04
上传
评论
收藏 1.13MB DOC 举报
温馨提示
试读
13页
设计模式学习笔记(十五)命令模式及在Spring JdbcTemplate 中的实现.doc
资源推荐
资源详情
资源评论
设计模式学习笔记(十五)命令模式及在 Spring JdbcTemplate 中的实现
命令(Command)模式是指将请求封装成为一个对象,使发出请求和执行请求的责任分
割开,方便将命令对象进行存储、传递、调用、增加与管理。
也就是将发送者、接收者和调用命令封装成独立的对象,来供客户端调用。属于行为模式
的一种。
一、命令模式介绍
命令模式将发送者与接受者完全解耦,发送者与接收者之间没有直接的联系,发送者只需
要如何发送请求,而不需要关心请求是如何完成的。下面就来看看命令模式的结构和实现:
1.1 命令模式的结构
将调用者和实现者进行分离,其结构如下所示:
Command:抽象命令角色,声明执行命令的接口
Command1、Command2:具体命令角色,是抽象命令角色的具体实现类
ReceiverA、ReceiverB:具体实现,具体命令对象的真正实现者
Invoker:调用者,处理命令、实现命令的具体操笔者,负责对外提供命令服务
Client:客户端
1.2 命令模式的实现
根据上面的结构图,可以实现如下代码:
/**
* @description: 抽象命令类
* @author: wjw
* @date: 2022/4/5
*/
public interface Command {
public abstract void execute();
}
/**
* @description: 命令具体实现类 1
* @author: wjw
* @date: 2022/4/5
*/
public class Command1 implements Command{
private ReceiverA receiverA = new ReceiverA();
@Override
public void execute() {
receiverA.action();
}
}
/**
* @description: 命令具体实现类 2
* @author: wjw
* @date: 2022/4/5
*/
public class Command1 implements Command{
private ReceiverA receiverA = new ReceiverA();
@Override
public void execute() {
receiverA.action();
}
}
/**
* @description: 接收者类 A
* @author: wjw
* @date: 2022/4/5
*/
public class ReceiverA {
public void action() {
System.out.println(“我是 ReceiverA”);
}
}
/**
* @description: 具体实现者
* @author: wjw
* @date: 2022/4/5
*/
public class ReceiverB {
public void action() {
System.out.println(“我是 ReceiverB”);
}
}
/**
* @description: 命令调用者
* @author: wjw
* @date: 2022/4/5
*/
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void setCommand(Command command) {
this.command = command;
}
public void call() {
System.out.println(“调用者执行命令 command”);
command.execute();
}
}
/**
* @description: 客户端
* @author: wjw
* @date: 2022/4/5
*/
public class Client {
public static void main(String[] args) {
Command command1 = new Command1();
Invoker invoker1 = new Invoker(command1);
剩余12页未读,继续阅读
资源评论
书博教育
- 粉丝: 1
- 资源: 2837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功