atitit.设计模式(2) -----查询方式/ command 总结

1. 应用场景: 1

1. 代替一瓦if else 1

2. 建设api rpc风格的时候儿. 1

3. 菜单是Command模式的一个典型实例。
1

4. 上下文中运行客户代码 1

5. 使用命令模式作为"CallBack"在面向对象系统中的替代。
1

6. 3)系统须要支持命令的撤消(undo)。
2

7. 日志恢复 2

2. Command模式类似于Interpreter模式.
2

3. Command模式和职责链的差别
2

1. 应用场景:

1. 代替一瓦if else

2. 建设api rpc风格的时候儿.

3. 菜单是Command模式的一个典型实例,

它可以充分体现该模式的价值.在菜单的设计中。菜单项知道应该在何时运行操作,可是并不知道将会调用哪个方法.我们通过应用Command模式可以将菜单项相应的方法调用作为參数传给菜单.

4. 上下文中运行客户代码

Command模式的另外一个使用方法是同意在服务的上下文中运行客户代码.服务常常在客户代码调用前和调用后运行.最后,除了控制方法运行的时机或者上下文之外,Command模式还能够提供钩子。同意可选的客户代码作为算法的一部分运行

5. 使用命令模式作为"CallBack"在面向对象系统中的替代。

1)"CallBack"讲的便是先将一个函数登记上。然后在以后调用此函数。

2)须要在不同的时间指定请求、将请求排队。一个命令对象和原先的请求发出者能够有不同的生命期。换言之,原先的请求发出者可能已经不在了,而命令 对象本身仍然是活动的。这时命令的接收者能够是在本地。也能够在网络的另外一个地址。命令对象能够在串形化之后传送到另外一台机器上去。

6. 3)系统须要支持命令的撤消(undo)。

命令对象能够把状态存储起来,等到client须要撤销命令所产生的效果时。能够调用undo()方法,把命令所产生的效果撤销掉。命令对象还能够提供redo()方法。以供client在须要时,再又一次实施命令效果。

7. 日志恢复

4)假设一个系统要将系统中全部的数据更新到日志里,以便在系统崩溃时,能够依据日志里读回全部的数据更新命令,又一次调用Execute()方法一条一条运行这些命令。从而恢复系统在崩溃前所做的数据更新。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. Command模式类似于Interpreter模式.

3. Command模式和职责链的差别

在这个层面上。Command模式和其是相竞争的。Command模式类似直接抛绣球,知道目的,可以最有效率。可是前提在设计编码阶段你必须知道你的目的地。Command模式和职责链的差别与Decorator和AOP拦截器的差别是类似的

參考

Java之命令模式(Command Pattern) - Devin Zhang - 博客园 (hteu 有 etc code

o725

版权声明:本文博主原创文章。博客,未经同意不得转载。

atitit.设计模式(2) -----查询方式/ command 总结的更多相关文章

  1. atitit.设计模式(2) -----查表模式/ command 总结

    atitit.设计模式(2) -----查表模式/ command 总结 1. 应用场景: 1 1. 取代一瓦if else 1 2. 建设api rpc风格的时候儿. 1 3. 菜单是Command ...

  2. atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换

    atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...

  3. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  4. Hibernate 查询方式(HQL/QBC/QBE)汇总

    作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...

  5. Atitit 设计模式与算法,与流程的关系

    Atitit 设计模式与算法,与流程的关系 1.1. 设计模式就是算法 就是流程,不同的方面看法不同,抽象方法不同而造成的假象. 软件就是由设计模式累积成的.也可以说算法累计成的.. ,而可以用Vis ...

  6. Atitit 设计模式的本质思考】

    Atitit 设计模式的本质思考] 1. 世界就是有模式构建的1 1.1. 多次模式与偶然模式1 1.2. 模式就是在一种场合下对某个问题的一个解决方案."1 1.3. 模式需要三样东西.  ...

  7. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询

    1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...

  8. easyui datagride 两种查询方式

    easyui datagride 两种查询方式function doReseach() { //$('#tt').datagrid('load', { // FixedCompany: $('.c_s ...

  9. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

随机推荐

  1. WM_PARENTNOTIFY的作用(不完全)

    VCL里源码如下: procedure TWinControl.WMParentNotify(var Message: TWMParentNotify); begin with Message do ...

  2. sort如何按指定的列排序·百家电脑学院

    sort如何按指定的列排序·百家电脑学院 sort如何按指定的(9php.com)列排序 0000            27189           41925425065f           ...

  3. SuSE(SLES)安装配置syslog-ng日志server,可整合splunk

    Update History 2014年04月25日 - 撰写初稿 引言 在自己主动化部署AutoYast.自己主动化监控BMC Patrol双方面形成雏形后.日志的收集.管理.分析也顺势成为我们须要 ...

  4. margin 等高布局

    <div id="main"> <div id="left"> 我是左边的内容的啦啦啦啦... .<br> 我是左边的内容的 ...

  5. nagios二次开发(五岁以下儿童)---nagios和nagiosql关系

    基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如:      从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...

  6. VSTO学习笔记(一)VSTO概述

    原文:VSTO学习笔记(一)VSTO概述 接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Excel Services)上下载E ...

  7. debian下使用siege进行压力测试

    一:siege siege是开源的一个测试工具,可以对指定文本的URL列表进行负载测试,也可以在执行其他请求前让某个请求休眠,从而让你感觉某个用户在转移到web应用的下一个文档前正在读取该文档. ht ...

  8. 手机游戏产品经理(一)logo的印象非常重要,以促进

    从事的工作有一段时间的产品,在产品上共享所以现在的一些经验和知识,并记录.首先,我现在做国外casino手游,如此专注casino展开游戏的主题. 首先说一款游戏的logo非常重要,假设设计的好.它能 ...

  9. java 中间 final修饰符

    修饰符final:它是一个常数,我不同意改变 ,可以修改 变数,办法 ,分类 final修改变量:是final成常量,一旦赋值不能改变 常量能够在初始化时直接赋值.也能够在构造方法里赋值.仅仅能在这两 ...

  10. JPush极光推送 Java调用服务器端API开发

       极光推送是:使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验.简单的说就是通过JPush后台管理网站进行app消息的推送.可以让用户及时 ...