WEB开发网
开发学院网页设计JavaScript Javascript乱弹设计模式系列(3) - 装饰者模式(De... 阅读

Javascript乱弹设计模式系列(3) - 装饰者模式(Decorator)

 2010-09-14 13:35:20 来源:WEB开发网   
核心提示: 类图原理分析现在结合Javascript,开始介绍Javascript装饰者模式,Javascript乱弹设计模式系列(3) - 装饰者模式(Decorator)(2),这里我举个多功能复印机的例子来说明:1. 首先最开始我定义一个复印机接口,它会什么呢?它有说明书,要插电,可查看时间

类图

Javascript乱弹设计模式系列(3) - 装饰者模式(Decorator)

原理分析

现在结合Javascript,开始介绍Javascript装饰者模式,这里我举个多功能复印机的例子来说明:

1. 首先最开始我定义一个复印机接口,它会什么呢?它有说明书,要插电,可查看时间,可修理,可进行复印,有价格

那就可以这样子得到:

var IManifdder = new Interface("IManifdder", [["getDescription"],["electrify"],["watch"],["repair"],["duplicate"],["getPrice"]]);

2. 然后定义一个继承于该复印机接口的类Manifdder:

function Manifdder() {
  Interface.registerImplements(this, IManifdder);
}
Manifdder.prototype = {
  getDescription : function() {
    //
  },
  electrify : function() {
    //
  },
  watch : function() {
    //
  },
  repair : function() {
    //
  },
  duplicate : function() {
    //打印操作
  },
  getPrice : function() {
    return 500.0;
  }
};

3. 接着定义一个继承复印机接口的装饰者抽象类:

function ManifdderDecorator(manifdder) {
  this.manifdder = manifdder;
  Interface.registerImplements(this, IManifdder);
}
ManifdderDecorator.prototype = {
  getDescription : function() {
    return this.manifdder.getDescription();
  },
  electrify : function() {
    return this.manifdder.electrify();
  },
  watch : function() {
    return this.manifdder.watch();
  },
  repair : function() {
    return this.manifdder.repair();
  },
  duplicate : function() {
    return this.manifdder.duplicate();
  },
  getPrice : function() {
    return this.manifdder.getPrice();
  }
};

上一页  1 2 3 4 5 6 7  下一页

Tags:Javascript 乱弹 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接