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中的接受请求的方法的形式相当的自由,这里的实现方式应该是很多利用了反射和注解提供的信息吧.

  • 相关阅读:
    关于无法使用xx-pc附加到应用程序iisexpress.exe
    iis 7.5 0x80004005 静态文件 html、js、css 500错误
    递归删除指定目录下面的所有文件夹和文件
    http请求相关
    常用分页写法
    获取与Url链接相关的信息
    解决iis7 0x80070002 错误代码问题
    实现Cookie跨域共享
    文本框值改变事件
    动态加载、移除、替换JS和CSS
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/5755511.html
Copyright © 2011-2022 走看看