您的位置:首页 > 其它

设计模式之装饰模式

2016-03-17 16:24 363 查看
作用:此模式能够在不必改变原类文件和使用继承的情况下,动态扩展一个对象的功能。装饰模式是通过创建一个包装对象

来实现的,也就是用装饰来包裹真实的对象。

好处:

一:比继承更灵活

从为对象添加功能的角度来看,装饰模式比继承来得更灵活,继承是静态的,而且一旦继承,是所有子类都有同样的功能。

而装饰模式则把功能分离到每个装饰器中,然后通过对象组合的方式,在运行时动态的组合功能,每个被装饰的对象最终有哪些

功能,是由运行期动态组合的功能来决定的。

二:更容易复用功能

装饰模式把一系列复杂的功能分散到每个装饰器中,一般一个装饰器只实现一个功能,这样实现装饰器变得简单(注:也符

合单一职责原则),更重要的是这样有利于装饰器功能的复用,可以给一个对象增加多一个同样的装饰器,也可以把一个装饰器

用来装饰不同的对象,从而复用装饰器的功能。

三:简化高层定义

装饰模式可以通过组合装饰器的方式,给对象增添任意多的功能,因此在进行高层定义的时候,不用把所有的功能都定义出

来,而是定义最基本的就可以了,可以在使用需要的时候,组合相应的装饰器来完成需要的功能。

四:会产生很多细粒度对象

前面说过,装饰模式是把一系列复杂的功能分散到每个装饰器中,一般一个装饰器只实现一个功能,这样会产生很多细粒度

的对象,而且功能越复杂,所需要的细粒度对象就越多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: