23种设计模式之命令模式
23种设计模式之命令模式
yolinfeng 发表于1年前
23种设计模式之命令模式
  • 发表于 1年前
  • 阅读 24
  • 收藏 0
  • 点赞 0
  • 评论 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(); //执行命令
	}
}

共有 人打赏支持
粉丝 12
博文 196
码字总数 9304
×
yolinfeng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: