zoukankan      html  css  js  c++  java
  • 命令模式

    command模式:
       目的:把一个请求封装成一个对象,因此可以让你给一个clinet配置很多不同的请求.
       适应场景:
           1.为一个对象配置一些行为.command模式是面向对象编程中对callback函数的一个替换.
           2.一个command的生命周期和client无关.所以,你可以把一个receiver传到其他线程中去做填充到另一个command中
           3.可以有撤销和恢复的功能.你可以在一个command中存储一个执行过的操作的list,然后可以照着这个list重新执行一遍或者反向执行来实现恢复和撤销的功能.但是在command的接口中需要定义撤销和恢复的方法.
           4.将一些列的基本操作变成统一的操作,所以可以利用这个模式来实现事务.一个事务隔离了对数据的操作,而command也可以做到这一点.而且command为系统提供了一系列的统一的操作,这样可以很方便的在以后加入新的事务.或者是可以很方便的在原有系统的基础上加入新的操作,而不会对原来的系统造成任何的影响.
       典型的应用:
           1.实现callback函数
           2.实现撤销功能
           3.可以把一个操作的history保留下来.
       实现的方法:
           1.定义command的接口,接口里有excute方法,也可以有undo和redo方法.
           2.具体的command类实现这些接口.在实现的时候可以利用target,也就是这个命令的受影响的对象,让它来做.
           3.在client中调用command的操作,然后可以在client中记录做过的command的list,这样就可以实现撤销和恢复的操作.


    实例:java.lang.runnable
    今天看到了command模式在struct的mvc中的应用,确实是可以把各个controller当做一个个的command.但是在Spring的MVC中似乎不是这样的,根据今天学的内容,它的controller中的接受请求的方法的形式相当的自由,这里的实现方式应该是很多利用了反射和注解提供的信息吧.

  • 相关阅读:
    360浏览器自动填写用户名和密码、下拉框解决办法
    实用JAVA工具类网站
    JQuery中ajaxSubmit,在ie或360兼容,提交后台不能获得参数
    java中形参的可变参数的定义(如String... args) .
    用sqldeveloper连接数据库
    ORA-12541:TNS:无监听程序问题
    小工具:生成半透明背景色的 CSS 代码,不影响子元素透明度
    JQuery使用小结
    ajaxSubmit 在ie9或360兼容中,form下是空的
    ajax 跨域请求数据 jsonp 示例
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/5755511.html
Copyright © 2011-2022 走看看