随笔-19  评论-2  文章-1  trackbacks-0

   装饰模式

        他的各个角色的作用为:抽象角色:给出一个抽象的接口,以规范准备接收附加责任的对象。

        具体角色:定义一个将要接收附加责任的类。

        装饰角色:持有一个构件对象的实例,并定义一个雨抽象接口一致的接口。

        具体装饰角色:负责给构件对象“贴上”附加责任。

装饰类一般在以下情况使用:

1、  需要扩展一个类的功能,或给一个类增加附加责任。

2、  需要动态的给一个对象增加功能,这些功能可以再动态的测销。

3、  需要增加由一些基本的排列组合产生非常大量的功能,从而使继承关系变得不现实。          

    

他有很多特点:

1、  装饰模式雨继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。装饰模式准系统动态的决定“贴上”一个需要的“装饰”,或者除掉一个不需要的装饰。而继承则不同,继承关系是静态的,他在系统运行前就决定了。

2、  他可以通过使用不同的具体修饰类以及这些装饰类的排例组合,设计可以创造更多不同行为的组合。     

3、  他虽然比继承性要灵活,这意味着他比继承更容易出错。

缺点:由于使用装饰模式可以比使用继承关系需要较少数目的类,但是在另一方面,使用装饰模式会产生比使用继承方式更多的对象。这在使用时进行错误查询变得更困难了,特别是这些对象看上去都很像。

 

posted on 2005-08-11 22:36 sky 阅读(223) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: