当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js装饰设计模式学习心得

js装饰设计模式学习心得

2019年06月07日  | 移动技术网IT编程  | 我要评论

装饰设计模式

每种设都有其独特的应用场景和解决问题的方式, 装饰设计模式是动态的为对象添加新的功能, 是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀, 这种模式适合新添加的功能不足以用继承为代价解决问题的情况时使用 - 杀鸡焉用宰牛刀 ^_^
装饰设计模式: 动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。

结构图:

接口

var bicycle = new interface('bicycle', ['assemble', 'wash', 'repair', 'getprice']);

对象类

var acmecomfortcuiser = function(){
  
};
acmecomfortcuiser.prototype = {
  assemble: function(){
    
  },
  wash: function(){
    
  },
  repair: function(){
    
  },
  getprice: function(){
    
  }
}

装饰类

var bicycledecorator = function(bicycle){
  interface.ensureimplements(bicycle, bicycle);
  this.bicycle = bicycle;
};
bicycledecorator.prototype = {
  assemble: function(){
    return this.bicycle.assemble();
  },
  wash: function(){
    return this.bicycle.wash();
  },
  repair: function(){
    return this.bicycle.repair();
  },
  getprice: function(){
    return this.bicycle.getprice();
  }
}

拓展类

  var headlightdecorator = function(bicycle){
    bicycledecorator.call(this, bicycle);
  };
  extend(headlightdecorator, bicycledecorator);
  headlightdecorator.prototype.getprice = function(){
    return this.bicycle.getprice() + 15.00;
  }

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网