文档章节

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
珠海
架构师

暂无文章

负载均衡的解决方案有哪些

负载均衡器服务可满足大型组织的需求,支持所有数据中心和跨数据中心高可靠性场景。 本地负载均衡,通过附带或者未附带持久性覆盖选项,Incapsula支持各种负载均衡算法,以优化服务器之间的流...

上树的熊
17分钟前
1
0
Java实现在线打开word文档加盖印章/盖章/签名功能

前言: 我们知道,大型一点的OA办公系统都会有很多在线处理office办公文档的需求。其中有一点也基本绕不开,那就是为文档盖章或添加手写签名来保护文档,让被盖章的文档不再被编辑。 在Java中...

山里的红杏
24分钟前
4
0
js控制输入正负数,小数点后保留两位

//限制数字function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value ...

一直在成长的程序猿
27分钟前
1
0
动态代理

具体场景 为了使代理类与被代理类对第三方有相同的函数,代理类与被代理类一般实现一个公共的interface,定义如下 public interface Subject { void rent(); void hello(String s)...

wuyiyi
31分钟前
0
0
时间字段

我们看看这几个数据库中(mysql、oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date、datetime、time、timestamp和year。date :“yyyy-mm-dd”格式表示的日期值 time :“hh:...

DemonsI
32分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部