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

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

 2010-09-14 13:35:20 来源:WEB开发网   
核心提示:前言博客园谈设计模式的文章很多,我也受益匪浅,Javascript乱弹设计模式系列(3) - 装饰者模式(Decorator),包括TerryLee、吕震宇等等的.NET设计模式系列文章,强烈推荐,所以可以在运行是动态地、不限量地用你喜欢的装饰者来装饰对象 定义装饰者模式是动态地将责任附加到对象上,若要扩展功能,对于我

前言

博客园谈设计模式的文章很多,我也受益匪浅,包括TerryLee、吕震宇等等的.NET设计模式系列文章,强烈推荐。对于我,擅长于前台代码的开发,对于设计模式也有一定的了解,于是我想结合Javascript来设计前台方面的“设计模式”,以对后台“设计模式”做个补充。开始这个系列我也诚惶诚恐,怕自己写得不好,不过我也想做个尝试,一来希望能给一些人有些帮助吧,二来从写文章中锻炼下自己,三来通过写文章对自己增加自信;如果写得不好,欢迎拍砖,我会虚心向博客园高手牛人们学习请教;如果觉得写得还可以,谢谢大家的支持了:)

概述

在软件开发中,经常因为需求变动而需要扩展功能,想到的可能是继承类的方式进行扩展(还可以是组合方式(这个别篇另谈)),但是随着功能越来越多,子类也会越来越多,这样很不利用维护;而且需求的变动还导致部分功能也许不再需要,所以能够按需求来动态地扩展所需要的功能,是很好的解决方式;这样,装饰者模式应油而生,它动态地解决了功能扩展的问题

这里借用《Head First Design Pattern》归纳的五点:

装饰者和被装饰者对象有相同的超类型

你可以用一个或是多个装饰者包装一个对象

既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象(被包装)的场合,可以用装饰过的对象代替它

装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,以达到特定的目的

对象可以在任何时候被装饰,所以可以在运行是动态地、不限量地用你喜欢的装饰者来装饰对象

定义

装饰者模式是动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

1 2 3 4 5 6  下一页

Tags:Javascript 乱弹 设计模式

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