装饰模式:
他的各个角色的作用为:抽象角色:给出一个抽象的接口,以规范准备接收附加责任的对象。
具体角色:定义一个将要接收附加责任的类。
装饰角色:持有一个构件对象的实例,并定义一个雨抽象接口一致的接口。
具体装饰角色:负责给构件对象“贴上”附加责任。
装饰类一般在以下情况使用:
1、 需要扩展一个类的功能,或给一个类增加附加责任。
2、 需要动态的给一个对象增加功能,这些功能可以再动态的测销。
3、 需要增加由一些基本的排列组合产生非常大量的功能,从而使继承关系变得不现实。
他有很多特点:
1、 装饰模式雨继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。装饰模式准系统动态的决定“贴上”一个需要的“装饰”,或者除掉一个不需要的装饰。而继承则不同,继承关系是静态的,他在系统运行前就决定了。
2、 他可以通过使用不同的具体修饰类以及这些装饰类的排例组合,设计可以创造更多不同行为的组合。
3、 他虽然比继承性要灵活,这意味着他比继承更容易出错。
缺点:由于使用装饰模式可以比使用继承关系需要较少数目的类,但是在另一方面,使用装饰模式会产生比使用继承方式更多的对象。这在使用时进行错误查询变得更困难了,特别是这些对象看上去都很像。
posted on 2005-08-11 22:36
sky 阅读(228)
评论(0) 编辑 收藏