Command设计模式--学习总结
来源:互联网 发布:python计算余弦相似度 编辑:程序博客网 时间:2024/06/05 03:41
意图:
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
适用环境:
(1) 抽象出待执行的动作以参数化某对象。你可用过程语言中的回调(Callback)函数表达这种参数化机制。所谓回调函数是指函数先在某处注册,而它将在稍后某个需要的时候被调用。Command模式是回调机制的一个面向对象的替代品。
(2) 在不同的时刻指定、排列和执行请求。一个Command对象可以有一个与初始请求无关的生存期。如果一个请求的接收者可用一种与地址空间无关的方式表达,那么就可将负责该请求的命令对象传送给另一个不同的进程并在那儿实现该请求。
(3) 支持取消操作。Command的Excute操作可在实施操作前将状态存储起来,在取消操作时这个状态用来消除该操作的影响。Command接口必须添加一个Unexcute操作,该操作取消上一次Excute调用的效果。执行的命令被存储在一个历史列表中。可通过向后和向前遍历这一列表并分别调用Unexcute和Excute来实现重数不限的“取消”和“重做”。
(4) 支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。在Command接口中添加装载操作和存储操作,可以用来保持变动的一个一致的修改日志。从崩溃中恢复的过程包括从磁盘中重新读入记录下来的命令并用Excute操作重新执行它们。
(5) 用构建在原语操作上的高层操作构造一个系统。这样一种结构在支持事务(transaction)的信息系统中很常见。一个事务封装了对数据的一组变动。模式提供了对事务进行建模的方法。Command有一个公共的接口,使得你可以用同一种方式调用所有的事务。同时使用该模式也易于添加新事务以扩展系统。
结构:
- Command设计模式--学习总结
- 设计模式学习总结:命令模式(Command)
- 设计模式学习14 Command
- 设计模式学习-Command(命令)
- Command设计模式-HeadFirst学习
- 设计模式之Command模式(学习笔记)
- 设计模式学习--命令模式(command)
- 设计模式学习之command模式
- 设计模式学习(五)------Command
- JavaScript设计模式学习——Command
- java 设计模式学习笔记十二 command命令设计模式
- 设计模式 command模式
- 设计模式----Command模式
- 设计模式:Command模式
- 【设计模式】Command模式
- 设计模式--Command 模式
- 设计模式-----COMMAND模式
- 【设计模式学习笔记十五】【行为模式】【命令模式(Command)】
- 利用AbstractRoutingDataSource实现动态数据源切换
- 在Win7下使用虚拟机安装 Mac 及 XCode 4.2.1(iOS开发环境)
- linux find命令使用详解
- state设计模式--学习总结--state设计模式和策略设计模式的区别
- Google后Hadoop时代的新“三驾马车”——Caffeine、Pregel、Dremel
- Command设计模式--学习总结
- 程序员的年度计划
- 第三届蓝桥杯预赛java趣味算式
- 排序算法-计数排序
- 数据库优化 -- 拆分表
- 枚举应用小结 嘿嘿~
- Visitor设计模式--学习总结
- java 设计类
- struts2 基本应用