用Javascript实现Command模式

原创 2006年06月18日 21:11:00
这个实现实在太简单了………动态语言就是好使啊~
先定义一个Command对象,代码如下:
function Command(obj) {
    var commandObj = obj;       // save the reference of working object
    var oldProp = new Object(); // save old properties
   
    // set new properties and save old properties
    this.Do = function() {
        for (var o in this) {
            oldProp[o] = commandObj[o];
            commandObj[o] = this[o];
        }
    }
   
    // restore old properties
    this.Undo = function() {
        for (var o in oldProp) {
            commandObj[o] = oldProp[o];
        }

        delete oldProp;
        oldProp = new Object();
    }
}
如果要调用,这样写就可以了:
// "mc" is an object that has _alpha and _x attributes
var com = new Command(mc);
com._alpha = 20;
com._x = 200;
com.Do();
// do something...
// remember to save this Command somewhere...

// now, undo it!
com.Undo();

为这样的简单而和谐 惊叹了!
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Windows Phone 7 MVVM模式通讯方式之实现Command

MVVM模式的View与ViewModel的三大通讯方式:Binding Data(实现数据的传递)、Command(实现操作的调用)和Attached Behavior(实现控件加载过程中的操作)。...

Command模式实现撤销重做(Undo/Redo)

这是在实际项目中遇到的需求,项目中使用了Java Swing画界面,开始时没有实现撤销重做,后期要求加入撤销重做功能。在网上查找到资料说这种撤销重做的操作一般通过Command模式来实现,在实现过程中...
  • sjepy
  • sjepy
  • 2012-06-05 23:30
  • 5188

C++实现Behavioral - Command模式

The COR (Chain Of Responsibility) pattern forwards requests along a chain of classes, but the Comm...

Java 实现命令(Command)模式

类图 public interface ICommand { void execute(); } public class ConcreteCommand implements ICommand...

C++下利用Command设计模式实现undo和redo

Command.hpp: #ifndef _COMMAND_HPP #define _COMMAND_HPP #include #include #include class Comm...

使用Command模式实现撤销机制[1]

Introduction Command是一个非常强大的设计模式,它的作用是将一个请求封装成一个对象,从而使你能够把来自客户端的不同请求(request)、队列(queue)或者日志记录请求(l...

Command模式实现撤销重做(Undo/Redo)

这是在实际项目中遇到的需求,项目中使用了Java Swing画界面,开始时没有实现撤销重做,后期要求加入撤销重做功能。在网上查找到资料说这种撤销重做的操作一般通过Command模式来实现,在实现过程中...

uboot命令行模式run_command函数的实现

uboot命令行模式大家应该都清楚,实际上都是靠run_command函数 我是基于AM3358的uboot来说明的,其实其他的都一样,各个版本uboot的这个函数好像都是一个样子的。 1...

命令模式(Command)的两种不同实现

命令模式(Command):将一个请求封装成一个对象,使得你用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。   命令模式,顾名思义来理解即可,就是客户端发布...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)