JAVA设计模式之命令模式
来源:互联网 发布:自然语言处理 数据挖掘 编辑:程序博客网 时间:2024/05/24 03:59
命令模式:将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。也称为 动作Action模式,事务transaction模式
真正的命令执行者
package com.imust.command;/** * 真正的命令执行者 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.command */public class Receiver { public void action(){ System.out.println("Receiver.action()"); }}
命令发起者
package com.imust.command;/** * 调用者 发起者 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.command */public class Invoke { //也可以通过容器List<Command> 容纳很多的命令对象,进行批处理 //数据库底层数据管理就是这个原理 private Command command; public Invoke(Command command) { super(); this.command = command; } //业务方法 用于调用命令类的方法 public void call(){ command.execute(); }}
命令接口和实现
package com.imust.command;/** * 命令接口 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.command */public interface Command { /** * 这个方法是一个返回结果为空的方法 * 实际项目中,可以根据需求设计多个不同的方法 */ void execute();}class ConcreateCommand implements Command{ private Receiver receiver; //命令的真正执行者 public ConcreateCommand(Receiver receiver){ super(); this.receiver = receiver; } @Override public void execute() { //命令真正执行前或者是后,执行相关的命令 receiver.action(); }}
实现
package com.imust.command;/** * 测试类 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.command */public class Client { public static void main(String[] args) { Command c = new ConcreateCommand(new Receiver()); Invoke i = new Invoke(c); i.call(); }}
阅读全文
0 0
- Java设计模式-之Command命令模式
- Java设计模式之命令模式
- java设计模式之命令模式Command
- java设计模式之命令者模式
- JAVA设计模式之命令模式
- java设计模式之命令模式
- Java设计模式之命令模式
- java与设计模式之命令模式
- JAVA-设计模式之命令模式
- java设计模式之四命令模式
- java设计模式之命令模式
- java设计模式之命令模式
- Java设计模式泛型化之命令模式
- JAVA 设计模式之命令模式
- java设计模式之命令模式Command
- JAVA设计模式之命令模式
- java设计模式之命令模式
- java 设计模式之命令模式
- 3526:最简真分数(2.1基本算法之枚举)
- LeetCode 14. Longest Common Prefix
- hd 2079选课时间【背包+组合】
- 数据库学习之——SQL四种语言:DDL,DML,DCL,TCL
- JavaScript---Beacons图片信标发送数据
- JAVA设计模式之命令模式
- 词向量源码解析:(2.3)word2vec源码解析之word2vec
- angular之表单验证ngMessages
- 初识动态代理(值得深入研究的知识点)
- [LeetCode-Algorithms-1] "Two Sum" (2017.9.8)
- 米语录学习(三)
- Event Kernel mode
- hdu 3746 Cyclic Nacklace
- Advanced Programming in Unix Environment Episode 1