- 浏览: 752641 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (241)
- 个人思考 (1)
- 数据库 (5)
- java基础 (32)
- 软件工程 (2)
- zk开源框架 (15)
- 设计模式 (25)
- javascript (12)
- css (9)
- UML (2)
- CMMI软件需求 (3)
- CMMI软件设计 (2)
- CMMI软件实现 (1)
- CMMI软件测试 (1)
- 正则表达式 (4)
- 系统日志配置 (4)
- 应用服务器 (1)
- spring (7)
- XML (6)
- java web (10)
- Ajax (3)
- RichFaces (14)
- 问题 (1)
- 评论文章 (2)
- fushioncharts (2)
- MAVN (4)
- jquery (26)
- Ext js学习 (2)
- 学习心得 (2)
- CSS兼容问题 (3)
- XSL-FOP (1)
- Quartz (0)
- OSGI (1)
- spring--security (6)
- apache tools (1)
- eclispe 小技巧 (2)
- Ant (1)
- 杂记 (1)
- spring3系列 (5)
- java cache (4)
- EffectiveJava (2)
- 代码重构 (0)
最新评论
-
psz6696:
可以说是超级简单的Demo了,可惜没有演示设值注入和构造注入两 ...
模拟spring中的ClassPathXmlApplicationContext类的实现 -
ziyourJava:
[flash=200,200][img][url][list] ...
spring security进级篇 V 自定义标签控制显示 -
ztw1122:
...
zk组件开发指南(目录) -
zjysuv:
容我说一句 在座的各位都是垃圾 spring 3.2以后的@C ...
三. spring mvc 异常统一处理 -
chengwu1201:
二 基于Spring的异常体系处理
1、Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作的对象,"接收者" 是接收请求并执行某操作的对象。有了 "解耦",发送者对接收者的接口一无所知。)这里,"请求"(request)这个术语指的是要被执行的命令。Command模式还让我们可以对 "何时" 以及 "如何" 完成请求进行改变。因此,Command模式为我们提供了灵活性和可扩展性。
2、命令模式的类图
从类图可以看出,命令模式是把发送者和接收者完全解耦。而实际的执行者是receiver。
3、看一下典型代码的实现,客户向服务员要求点菜,服务员将命令发送给厨师,厨师进行做菜。
package com.cvicse.receiver; /** * 接收命令做事情者 * @author Administrator * */ public class Kitchener { /** * 执行的动作1 */ public void cookBeef(){ System.out.println("做牛肉"); } /** * 执行动作2 */ public void cookChicken(){ System.out.println("做鸡肉"); } }
package com.cvicse.command; import com.cvicse.receiver.Kitchener; public abstract class Command { protected Kitchener kitchener=new Kitchener(); /** * 执行操作方法 */ public abstract void execute(); }
具体命令1 package com.cvicse.command; /** * 做牛肉的具体命令 * @author Administrator * */ public class CookBeefCommand extends Command { @Override public void execute() { super.kitchener.cookBeef(); } }
具体命令2 package com.cvicse.command; /** * 做鸡肉的命令 * @author Administrator * */ public class CookChilkenCommand extends Command { @Override public void execute() { super.kitchener.cookChicken(); } }
package com.cvicse.invoke; import com.cvicse.command.Command; public class Waiter { private Command comand=null;//引入命令对象 /** * 设置命令窗口 * @param comand */ public void setComand(Command comand){ this.comand=comand; } /** * 执行命令 */ public void action(){ this.comand.execute(); } }
客户端调用代码
package com.cvicse.client; import com.cvicse.command.Command; import com.cvicse.command.CookBeefCommand; import com.cvicse.invoke.Waiter; public class Client { /** * @param args */ public static void main(String[] args) { Waiter waiter=new Waiter(); Command comand=new CookBeefCommand(); waiter.setComand(comand); waiter.action(); } }
4、总结该模式,感觉有点像夫妻两个人吵架后,儿子当传话筒相似。老婆下命令,儿子传达命令,自己去执行命令。
发表评论
-
面向对象设计原则-------总结
2015-07-14 10:55 0单一职能原则 ----- 设计类时,尽量功能单一,粒度合 ... -
MVC设计模式理解
2009-11-16 22:11 2044常常说MVC设计模式,今天抽空整理下,感觉模式这东 ... -
面向对象设计的原则---------迪米特原则
2009-10-15 21:15 3133迪米特原则(Law of Demeter) 1、迪米特原则的 ... -
面向对象设计的原则------接口隔离原则
2009-10-12 15:50 2760接口隔离原则(Interface ... -
面向对象设计的原则------依赖倒置原则
2009-10-11 18:27 3590依赖倒置原则(Dependence Inversion Pri ... -
面向对象设计的原则------里氏代换原则
2009-10-11 14:21 2604里氏代换原则(Liskov Sub ... -
面向对象设计的原则------开闭原则
2009-10-10 23:09 2438开闭原则(Open-Closed Prin ... -
面向对象设计的原则------单一职责原则
2009-10-09 20:36 3242学习设计模式,自然会涉及面向对象的设计原则,面向对 ... -
观察者模式
2009-08-04 22:14 1147gaojie -
组合模式-------树形模式
2009-08-03 20:42 22161、组合模式定义 ... -
适配器和外观模式的区别
2009-08-01 18:23 1360ok -
适配器模式
2009-08-01 14:43 1158适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类 ... -
门面模式(外观模式)
2009-07-29 22:49 14451、外观模式 为子系统的一组接口提供一个一致的界 ... -
简单工厂模式、代理模式、策略模式如此相似
2009-07-21 22:34 4068最近,一直在看设计模式,感觉简单工厂模式、代理模式、策略模式、 ... -
策略模式
2009-07-19 23:01 1322今天学习策略模式。策略模式是这个样子的。定义一个接 ... -
jdbcTemplate分页封装
2009-07-16 09:17 41081.JdbcTemplateExtend.java publi ... -
单例模式完全剖析
2009-07-07 21:01 1307概要 单例模式是最简单的设计模式之一,但是对于Jav ... -
DAO设计模式
2009-07-04 11:40 2201虽然DAO模式已经有了好多的成熟的框架,但它仍然是 ... -
工厂模式与DAO模式
2009-07-02 21:17 4382工厂模式是设计模式中较简单的模式,但在项目的开发过 ... -
动态代理模式
2009-06-30 22:25 14812.动态代理类 Java动态代理类位于Ja ...
相关推荐
设计模式之命令模式 设计模式之命令模式代码 设计模式之命令模式代码
命令模式(Command) 用意:把一个请求封装到一个对象中,把发出命令和执行命令的责任分开,委派给不同的对象实现。
设计模式之命令模式,你值得拥有,帮你快速掌握命令模式的实例。
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或纪录请求日志,以及支持可撤销的操作。 那么让我们简要的说一下命令模式的特点。 它能比较容易地设计一个...
设计模式这命令模式的Java实现版本和UML设计类图
学习js设计模式的例子,用到了命令模式、修装模式
命令模式代码demo 命令模式代码demo 命令模式代码demo
C#设计模式之 -- 命令模式代码示例和应用Dome
命令模式的示例代码和文档,学习命令模式的参考资料。
C#命令模式应用
命令模式(多命令)的代码(Java), 详细描述了命令模式(多命令)的代码架构.
ios平台中通过最简单的代码讲解命令模式,可在博客http://blog.sina.com.cn/s/blog_161d504630102wxis.html中查看简单解释
命令模式的C++实现
设计模式--命令模式java例子
设计模式C++学习之命令模式(Command)
C#命令模式模型,参考GOF 《设计模式》,模型代码。
命令模式:某个方法需要完成某一个行为,但这个行为的具体实现无法确定,必须等到执行该方法时才可以确定, * 这是一个命令模式的一个实例
命令模式,最简单的实现命令模式,没有对需求的负责理解,只针对模式本身。最纯粹的体现命令模式的特点
命令模式的示例代码及类图(用powerDesign画的),都是自己亲手写的,很简单,看不懂你来杀我! 注:oom文件需要手工用powerDesign打开,默认没有被PD关联。