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

  <java与模式> ---电子书 page 425

 

装饰模式—Decorator

装饰模式有名包装模式,装饰模式以对客户端透明的方式来扩展对象的功能,是继承关系的一个替代的方案。

客户端并不会觉得装饰模式在装饰前和装饰后有什么不同,他可以在不使用更多的子类的情况下来进行对对象的功能加以扩展。结构图如下:

装饰模式原来被装饰类的一个子类的实例,把客户端的调用委派到被装饰类。他有以下组成:抽象构件,具体构件,装饰角色,具体装饰;他一般在下面这些情况使用他最好:

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

2、  需要动态的给一个对象增加功能,这些功能可能被动态的撤消。

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

优点:他可以灵活的增加一个类或对象的功能,也可以通过不同的具体装饰类的排例组合设计出更加复杂的,功能更强的类。

缺点:他虽然增加了一个类的灵活性,但同时他也给一个类的管理带来了复杂性。
posted on 2005-08-03 00:00 sky 阅读(202) 评论(0)  编辑  收藏

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


网站导航: