文档章节

23种设计模式之命令模式

yolinfeng
 yolinfeng
发布于 2016/08/16 14:45
字数 322
阅读 36
收藏 0

命令模式包含三大内容,分别是接收者Receiver,命令Command和请求者Invoker

java语言描述

package one;

/**
 * 接收者
 * @author Administrator
 *
 */
public class Receiver {

	public void sneakAttack() {
		System.out.println("杀死敌人");
	}
}
package one;
/**
 * 命令接口
 * @author Administrator
 *
 */
public interface Command {
	void execute();
}

注意到这里的命令,其实是接口,也就是没有具体内容的,也就意味着我们要实现这个接口才行,当然了根据我们的业务需求去实现这个接口

package one;

/**
 * 实现我们的接口
 * @author Administrator
 *
 */
public class ConcreteCommand implements Command{

	private Receiver receiver;
	
	public ConcreteCommand(Receiver receiver) {
		this.receiver = receiver;
	}
	
	@Override
	public void execute() {
		receiver.sneakAttack();
	}

}
package one;

/**
 * 请求者
 * @author Administrator
 *
 */
public class Invoker {

	private Command command;

	public void setCommand(Command command) {
		this.command = command;
	}
	
	public void startExecuteCommand() {
		command.execute();
	}
	
}

OK,到这里这个设计模式就算是写完了,接下来就是使用这个设计模式

package one;

/**
 * 命令模式
 * @author Administrator
 *
 */
public class Application {

	public static void main(String[] args) {
		Receiver receiver = new Receiver(); //接收者
		Command command = new ConcreteCommand(receiver); //命令
		Invoker invoker = new Invoker(); //请求者
		invoker.setCommand(command); //设置命令
		invoker.startExecuteCommand(); //执行命令
	}
}

© 著作权归作者所有

共有 人打赏支持
yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师

暂无文章

【七】组合Action

本章描述了常用定义Action的方法。 自定义action builders 我们在action一章已经看过如何声明一个action——有request parameter、无request parameter、有body parser等等。你可以在 asynch...

Landas
31分钟前
0
0
Spring Boot实战之基础回顾

本文作者: 吴伟祥 本文链接: https://wuweixiang.cn/2018/08/21/Spring-Boot实战之基础回顾/ 版权声明: 本博客所有文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议。转载请在文章开...

吴伟祥
31分钟前
0
0
OAuth认证开发

提示: 以下测试是基于项目安装成功,初始化数据库(initial_db.ddl, oauth.ddl, initial_data.ddl)后的测试, 也可在页面上点击"client_details"菜单里进行测试 方式1:基于浏览器 (grant_type=...

舒文joven
40分钟前
1
0
第二章-对象及变量的并发访问-第二篇

锁对象的改变 请阅读如下代码 public class MainClass { private String lock = "123"; public void printStringB() { try { synchronized (lock) { ......

简心
44分钟前
0
0
日志中记录代理IP以及真实客户端、apache只记录指定URI的日志

apache 日志中记录代理IP以及真实客户端 默认情况下log日志格式为: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 其中%h 是记录访问者的IP,如果在web的前...

李超小牛子
52分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部