• 命令模式


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

  • 相关阅读:
    c# 文件上传
    iOSswift基础篇1
    copyWithZone 的使用方法
    客户端登陆接收大量数据导致数据丢失问题解决方法
    设计模式观察者模式(KVO)
    SQLite 之 C#版 System.Data.SQLite 使用
    设计模式MVC(C++版)
    JS 创建自定义对象的方法
    手机号、邮箱、身份证号 格式 验证
    在.cs文件中添加客户端方法
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/5755511.html
Copyright © 2020-2023  润新知