用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];
        }
/n如果要调用,这样写就可以了:
// "mc" is an object that has _alpha and _x attributes
/nvar com /u003d new Command(mc);
com._alpha /u003d 20;
/ncom._x /u003d 200;
com.Do();
// do something...
// remember to save this Command somewhere...

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

为这样的简单而和谐/n惊叹了!/n",0] ); //-->

        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();

为这样的简单而和谐 惊叹了!

Java 实现命令(Command)模式

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

C++实现Behavioral - Command模式

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

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

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

command模式(c 语言实现)

command 模式用于把命令调用封装起来 #include #include struct command_interface { int (*on)(void); in...

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

MVVM模式的View与ViewModel的三大通讯方式:Binding Data(实现数据的传递)、Command(实现操作的调用)和Attached Behavior(实现控件加载过程中的操作)。...
  • antsnm
  • antsnm
  • 2011年06月23日 15:17
  • 745

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

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

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

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

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

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

使用Command模式实现应用的撤销功能

使用Command模式实现撤销机制[1]   Written by Matt Berther Translated by Allen Lee[2] Reviewed by Teddy Tam ...

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

Introduction Command是一个非常强大的设计模式,它的作用是将一个请求封装成一个对象,从而使你能够把来自客户端的不同请求(request)、队列(queue)或者日志记录请求(l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Javascript实现Command模式
举报原因:
原因补充:

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