js装饰设计模式学习心得
2018-02-17 08:53
519 查看
装饰设计模式
每种设都有其独特的应用场景和解决问题的方式, 装饰设计模式是动态的为对象添加新的功能, 是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀, 这种模式适合新添加的功能不足以用继承为代价解决问题的情况时使用 - 杀鸡焉用宰牛刀 ^_^
装饰设计模式: 动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。
结构图:
接口
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; }
您可能感兴趣的文章:
相关文章推荐
- 设计模式之装饰模式,学习心得。如有错误,请多指教,谢谢。
- java 设计模式学习笔记九 decorator装饰模式
- 设计模式学习笔记之-适配器和装饰器的区别
- 初了解JS设计模式,学习笔记
- 设计模式学习之装饰器模式
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- java学习之IO装饰设计模式
- js 设计模式与继承学习
- 设计模式学习之装饰模式
- Java设计模式学习记录-装饰模式
- Java IO学习【10】装饰设计模式
- js 设计模式学习(3)
- 设计模式学习(三)---------装饰模式
- 学习设计模式的一点心得
- 学习设计模式的一些心得
- 设计模式 学习笔记(3)装饰模式、代理模式
- 步步为营 .NET 设计模式学习笔记 十四、Decorator(装饰模式)
- 设计模式学习总结(8) 装饰模式
- 设计模式学习笔记二十六:装饰器模式
- swift设计模式学习 - 装饰模式