`
xiangdefei
  • 浏览: 57513 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

简单学习命令模式

阅读更多
命令(Command)模式就是对命令的封装,也就是把一个请求或操作封装到一个对象中。
命令模式示意性代码如下:
/**
 * 抽象命令接口
 * @author Administrator
 *
 */
public interface Command {

	void execute();
}



抽象命令接口角色规定了具体命令接口必须实现的接口。即一个执行方法(execute)

/**
 * 具体命令类
 * @author Administrator
 *
 */
public class ConcreteCommand implements Command{

	private Receiver receiver;  //命令接收者

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

}


具体命令类实现了抽象命令角色(Command)所规定的接口,即一个execute方法.在这个类中有一个接收者类(Receiver),Recerver类是命令的接收者。在命令的控制下执行命令(也就是执行action方法)。

/**
 * 接收者类(命令的接收者)
 * @author Administrator
 *
 */
public class Receiver {

	public void action(){
		
		System.out.println("actions has been taken");
	}
	
}



现在需要一个类来负责调用命令对象执行请求。所以定义一个请求者类
/**
 * 请求者类
 * 
 * @author Administrator
 * 
 */
public class Invoker {

	private Command command;

	public Invoker(Command command) {
		this.command = command;
	}

	public void action() {
		command.execute(); // 调用命令对象执行请求
	}

}


Invoker构造函数接收一个Command类型的参数,并提供了一个action方法,这个方法调用了Command对象中的execute方法执行此命令对象.

至此,命令模式所需要的类都定义完成了,现在定义一个客户端类测试一下

public class Client {

	public static void main(String[] args) {
		Receiver receiver=new Receiver();  
		Command command=new ConcreteCommand(receiver);
		Invoker invoker=new Invoker(command);
		invoker.action();
		
	}
}

上面是命令模式的最最简单的实现。


分享到:
评论

相关推荐

    java设计模式学习文档.pdf

    培养学生掌握简单工厂模式、工厂方法模式、单例模式、原型模式、桥接模式、适配器模式、装饰模式、代理模式、命令模式、观察者模式等常用设计模式的设计思想,并掌握在实际软件工程领域中的运用,能够把所学的原理...

    面向对象初学者必须掌握的几种设计模式

    观察者模式 Observer:Swing中的事件模型 工厂模式 Factory:在JDK中遍地都是,比如JDBC、JNDI等,是学习Spring的基础 命令模式 Command:Struts框架的基石 单例模式 Singleton:最简单的设计模式,大量...

    JavaScript设计模式之命令模式实例分析

    本文实例讲述了JavaScript设计模式之命令模式。分享给大家供大家参考,具体如下: 第一,命令模式: (1)用于消除调用者和接收者之间直接的耦合的模式,并且可以对(调用这个过程进行留痕操作) (2)真的不要乱用这...

    NET 设计模式

    代码可以运行,下载这个后,建议买->《大话设计...14、命令模式 15、职责链模式 16、中介者模式 17、享元模式 18、解释器模式 19、访问者模式 20、策略模式 21、装饰模式 22、代理模式 23、工厂方法模式 24、原型模式

    研磨设计模式(完整带书签).part2.pdf

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    JavaScript命令模式原理与用法实例详解

    本文实例讲述了JavaScript命令模式原理与用法。分享给大家供大家参考,具体如下: 第一,命令模式: (1)用于消除调用者和接收者之间直接的耦合的模式,并且可以对(调用这个过程进行留痕操作) (2)真的不要乱用这...

    设计模式-7种开发语言(C#、JAVA、JavaScript、C++、Python、Go、PHP).pdf

    第十节 命令模式 第十一节 观察者模式 第十二节 策略模式 第十三节 建造者模式 第十四节 适配器模式 第十五节 桥接模式 第十六节 装饰器模式 第十七节 迭代器模式 第十八节 中介者模式 第十九节 备忘录模式 第二十节...

    设计模式笔记(包含所有设计模式)个人总结提炼笔记

    3. 行为型模式:行为型模式关注对象之间的通信和协作,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。这些模式可以帮助...

    研磨设计模式(完整带书签).part1.pdf

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    Java设计模式学习教程与案例源码.zip

    7. [命令模式](worthed/OriginBlog/blob/master/articles/CommandPattern.md) 8. [职责链模式](worthed/OriginBlog/blob/master/articles/ChainOfResponsibilityPattern.md) 9. [解释器模式](worthed/OriginBlog/...

    体系结构学习代码!特别详细丰富

     【例4.7】命令模式-室内温度控制-2个GUI  【例4.8】命令模式-室内温度控制-3个GUI  【例4.10】中介者模式-旅游信息共享  【例4.11】中介者模式-海岛机场  【例4.13】策略模式-整数排序  【例4.14】策略...

    java-design-patterns:Java 设计模式学习笔记

    将不同的行为代码解耦观察者模式模板方法模式策略模式职责链模式状态模式迭代器模式访问者模式备忘录模式命令模式解释器模式中介者模式后记由于自身能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流...

    入门学习Linux常用必会60个命令实例详解doc/txt

    要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令...

    研磨设计模式-part2

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    中兴交换机配置,中兴交换机配置命令

    想学习一下中兴交换机简单配置的可以下载看看

    研磨设计模式-part4

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    研磨设计模式-part3

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    cmd操作命令和linux命令大全收集

    tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送...

    研磨设计模式.part3(共4个)

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

    研磨设计模式.part2(共4个)

    第13章 命令模式(Command) 第14章 迭代器模式(Iterator) 第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式...

Global site tag (gtag.js) - Google Analytics