- 浏览: 1436937 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
命令模式本质是对命令的封装,从而把发出命令的责任和执行命令的责任分割开了,委派给不同的对象。
将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
Command模式的几个要点:
1、Command模式的根本目的在于将“行为请求者”与“行为实现者”解耦,在面向对象语言中,常见的实现手段是“将行为抽象为对象”。
2、实现Command接口的具体命令对象ConcreteCommand 有时候根据需要可能会保存一些额外的状态信息。
3、通过使用Composite模式,可以将多个“命名”封装为一个“复合命令”MacroCommand。
优点:
1、很容易构造一个命令队列
2、记录相关的命令日志
3、增加命令的状态,实现命令的撤销和重做
4、允许接受请求的一方决定是否可做
5、新的命令轻而易举可以加入其中
6、支持宏命令
缺点:
可能会有过多的具体命令类存在
命令接口:
public interface Command { public void execute(); }
命令实现类:
/** * 不同的命令对应到不同的接收者 */ public class ConcreteCommand implements Command{ private Receiver receiver; public ConcreteCommand(Receiver receiver){ this.receiver = receiver; } public void execute() { receiver.action(); } }
接收者:
public class Receiver { public void action(){ System.out.println("接收者处理请求!"); } }
调用者:
/** * 可以调用任何命令 */ public class Invoke { private Command command; public Invoke(Command command){ this.command = command; } public void doAction(){ command.execute(); } }
测试代码:
/** * 命令和接收者可以根据需要灵活调整 */ public class Test { public static void main(String[] args) { Receiver receiver = new Receiver(); ConcreteCommand command = new ConcreteCommand(receiver); Invoke invoke = new Invoke(command); invoke.doAction(); } }
发表评论
-
设计模式概述
2015-10-11 00:17 877设计模式(Design pattern ... -
备忘录模式(Memento Pattern)
2010-04-10 22:58 1390在不破坏封装的前提下,捕获并且保持一个对象的内部状态,这样可以 ... -
中介者模式(Mediator Pattern)
2010-04-10 17:45 2040定义一个对象封装一系列的对象交互,使得对象之间不需要显式地相互 ... -
迭代器模式(Iterator Pattern)
2010-04-01 21:36 2414提供一种方法访问一个容器(container)对象中各个元素, ... -
解析器模式范例:阿拉伯数字金额转为中文数字金额
2010-03-31 20:27 1830表达式抽象类: public abstract class ... -
解析器模式(Interpreter Pattern)
2010-03-30 21:29 2029定义语言的文法,并且建立一个解释器来解释该语言中的句子。 ... -
责任链模式(Chain of Responsibility Pattern)
2010-03-28 11:28 1502责任链是用一系列类试图处理一个请求,这些类之间是一个松散的耦合 ... -
代理模式(Proxy Pattern)
2010-03-26 22:27 1518为其他对象提供一种 ... -
轻量级模式(Flyweight Pattern)
2010-03-25 23:47 1982轻量级模式实现对象的共享,从而减少内存分配的开销。该模式通常和 ... -
外观模式(Facade Pattern)
2010-03-25 22:39 1416外观模式,为子系统的一组接口提供一个统一的界面,此模式定义了 ... -
装饰模式(Decorator Pattern)
2010-01-28 23:50 2867动态给一个对象添加一些额外的职责。使用Decorator模式相 ... -
组合模式(Composite Pattern)
2010-01-26 22:22 4948组合模式主要是应对这样的问题:一类具有“容器特征”的对象 —— ... -
建造者模式(Builder Pattern)
2010-01-24 22:11 1395将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创 ... -
状态模式(State Pattern)
2010-01-11 20:29 1461一、状态模式需要两种类型实体参与: 1、状态管理器 ... -
桥接模式(Bridge Pattern)
2009-05-05 09:29 1383将抽象部分与实现部分分离,使得它们两部分可以独立地变化。 ... -
适配器模式(Adapter Pattern)
2009-04-10 13:08 1474将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容 ... -
观察者模式(Observer Pattern)
2009-03-26 17:58 1536一、概念 定义对象间的一种一对多依赖关系,使得每当一 ... -
访问者模式(Visitor Pattern)
2009-03-23 16:21 1690一、概念 在不修改已有程序结构的前提下,通过添 ... -
策略模式(Strategy Pattern)
2009-03-18 15:21 1454策略模式的本质:少用继承,多用组合。 策略模式属于对象的行 ... -
设计模式应用范例(一):上行短信管理器
2009-03-17 18:19 2380Spring AOP的应用:在处理业务短信之前,可以 ...
相关推荐
命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列请求,或者支持可撤销的操作。在Java中实现命令模式,我们可以利用面向对象编程的特性来构建系统,使得...
### 命令模式(Command Pattern) #### 概述 命令模式是一种行为设计模式,它将请求封装成对象,以便使用不同的请求对客户端进行参数化。该模式有助于将发送请求的对象与执行请求的对象解耦。 #### 核心概念 在...
命令模式是一种行为设计模式,它将请求封装成独立的对象,使得可以使用不同的请求、队列请求、记录请求历史以及支持可撤销的操作。这种模式在软件工程中被广泛应用,尤其是在需要解耦请求发起者和接收者时,提高了...
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为对象,从而使您可以使用不同的请求、队列请求或日志请求,并支持可撤销操作。命令模式通常用于实现操作的解耦,使得发送者和接收者之间不直接关联...
12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、访问者模式VISITOR PATTERN ...
用最简单的例子理解命令模式(Command Pattern) 命令模式的需求源自想通过一个指令(比如这里IControl的Execute方法)来控制多个类的多个方法,包含了几个要素: 1、命令:让类的各种方法抽象成类实现一个接口 2、...
通过命令模式,我们可以轻松地添加新的命令,只需创建新的具体命令类并实现`Command`接口即可。此外,由于命令对象存储了接收者,所以可以很容易地在不同上下文中重用命令,甚至可以在命令执行后撤销操作(通过保存...
总结来说,"CommandPattern)管理智能家电最终代码共4页.pdf.zip"提供的示例应该展示了如何利用命令模式来管理和控制智能家电系统,包括命令的创建、执行、撤销以及如何将这些概念融入到实际的软件设计中。...
命令模式是一种设计模式,它将请求封装为一个对象,使得我们可以使用不同的请求、队列请求、或者记录请求日志,也可以支持可撤销的操作。在C#中,命令模式的应用可以帮助我们更好地解耦系统中的调用者和接收者,提高...
**命令模式(Command Pattern)详解** 命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在这个场景中,我们关注的是如何利用命令模式...
**命令模式(Command Pattern)详解** 命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中实现命令模式,可以有效地解耦调用者和...
**命令模式(Command Pattern)**是一种行为型设计模式,它将请求封装成对象,从而使你能够用不同的请求对客户端进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在命令模式中,请求是以命令的形式...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象(调用者)与...
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种...[GOF《设计模式》]Command模式结构图如下:图1Command模式结构图Command模式将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化。
在提供的文件列表中,`Program.cs`通常是主程序入口,`TestPatternCommand.csproj`是项目文件,`CommandPattern`可能是包含命令模式相关类的文件夹,`Properties`包含了项目的配置信息,而`TestPatternCommand.sln`...
工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...
- `CommandPattern` 文件夹:可能包含了命令模式相关的类,如Command接口、ConcreteCommand类等。 - `Properties` 文件夹:存储项目的属性配置,如AssemblyInfo.cs,用于定义元数据。 在实际应用中,C#命令模式可能...
在命令模式中,调用者(Invoker)不再直接调用接收者(Receiver)的方法,而是通过一个命令对象(Command)作为中介。命令对象封装了对接收者的操作,实现了请求的接口。这样,当需要执行一个新的操作时,只需要创建...
在`CommandPattern.zip`文件中,可能包含了这个模式的示例代码,你可以进一步查看和学习这些代码,以便更好地理解和应用命令模式。记住,虽然这是一个简单的实现,但命令模式的威力在于其能够适应复杂的需求,例如在...
命令模式(Command Pattern) 15. 迭代器模式(Iterator Pattern) 16. 观察者模式(Observer Pattern) 17. 解释器模式(Interpreter Pattern) 18. 中介者模式(Mediator Pattern) 19. 职责链模式(Chain of ...