刘伟技术博客

专注软件架构、设计模式、重构、UML和OOAD!

请求发送者与接收者解耦——命令模式(六)

7 宏命令       宏命令(Macro Command)又称为组合命令,它是组合模式和命令模式联用的产物。宏命令是一个具体命令类,它拥有一个集合属性,在该集合中包含了对其他命令对象的引用。通常宏命令不直接与请求接收者交互,而是通过它的成员来调用接收者的方法。当调用宏命令的execute()方法...

2013-04-15 23:52:29

阅读数:9672

评论数:12

请求发送者与接收者解耦——命令模式(五)

6 请求日志       请求日志就是将请求的历史记录保存下来,通常以日志文件(Log File)的形式永久存储在计算机中。很多系统都提供了日志文件,例如Windows日志文件、Oracle日志文件等,日志文件可以记录用户对系统的一些操作(例如对数据的更改)。请求日志文件可以实现很多功能,常用功能...

2013-04-15 23:42:44

阅读数:8910

评论数:7

请求发送者与接收者解耦——命令模式(四)

5 撤销操作的实现       在命令模式中,我们可以通过调用一个命令对象的execute()方法来实现对请求的处理,如果需要撤销(Undo)请求,可通过在命令类中增加一个逆向操作来实现。扩展除了通过一个逆向操作来实现撤销(Undo)外,还可以通过保存对象的历史状态来实现撤销,后者可使用备忘录模式...

2013-04-15 23:21:29

阅读数:9172

评论数:5

请求发送者与接收者解耦——命令模式(三)

4 命令队列的实现       有时候我们需要将多个请求排队,当一个请求发送者发送一个请求时,将不止一个请求接收者产生响应,这些请求接收者将逐个执行业务方法,完成对请求的处理。此时,我们可以通过命令队列来实现。       命令队列的实现方法有多种形式,其中最常用、灵活性最好的一种方式是增加一个C...

2013-04-15 22:31:50

阅读数:9687

评论数:10

请求发送者与接收者解耦——命令模式(二)

3 完整解决方案       为了降低功能键与功能处理类之间的耦合度,让用户可以自定义每一个功能键的功能,Sunny软件公司开发人员使用命令模式来设计“自定义功能键”模块,其核心结构如图4所示: 图4 自定义功能键核心结构图       在图4中,FBSettingWindow是“功能键设置”界面...

2013-04-15 21:52:14

阅读数:11351

评论数:8

请求发送者与接收者解耦——命令模式(一)

装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关闭,例如电灯或者排气扇。在购买开关时,我们并不知道它将来到底用于控制什么电器,也就是说,开关与电灯、排气扇并无直接关系,一个开关在安装之后可能用来控制电灯,也可能用来控制排气扇或者其他电器设备。开关与电器之间通过电线建立...

2013-04-15 21:39:01

阅读数:16816

评论数:10

JDK中的设计模式应用实例

在JDK(Java Development Kit)类库中,开发人员使用了大量设计模式,正因为如此,我们可以在不修改JDK源码的前提下开发出自己的应用软件,本文列出了部分JDK中的模式应用实例,有兴趣的童鞋可以深入研究,看看前Sun公司的开发人员是如何在实际框架开发中运用设计模式的,,Sunny认...

2013-04-06 21:32:55

阅读数:10880

评论数:3

提示
确定要删除当前文章?
取消 删除
关闭
关闭