博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js设计模式 --- 装饰设计模式
阅读量:7117 次
发布时间:2019-06-28

本文共 1220 字,大约阅读时间需要 4 分钟。

装饰设计模式

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

装饰设计模式: 动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。

结构图:

图片描述

  • 接口

    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;    }

转载地址:http://hubel.baihongyu.com/

你可能感兴趣的文章
分布式系统常见的事务处理机制
查看>>
程序员是一个什么能力都可以发挥作用的平台
查看>>
hosts 不启作用的解决办法
查看>>
命令模式 Command 行为型 设计模式(十八)
查看>>
Django | QuerySet API reference | Django documentation
查看>>
【并发服务器系列】3 epoll模型
查看>>
[置顶] macbook 深度休眠和待机
查看>>
互联网创业如何与传统行业人士合作?
查看>>
利用有道翻译实现英汉互译
查看>>
谷歌地图地理解析和反解析geocode.geocoder详解(转)
查看>>
设计模式学习笔记-建造者模式
查看>>
sharesdk 的使用
查看>>
ABP框架 - 时间
查看>>
默认值的创建、查看、绑定与松绑、删除
查看>>
Eclipse launch configuration----Eclipse运行外部工具
查看>>
golang 小例子
查看>>
poj1147
查看>>
df、du、fdisk
查看>>
gridgian 网格计算
查看>>
JSP/Servlet中文乱码处理总结
查看>>