主页>技术社区>IT 技术与微软技术>编程开发>JAVA>Java 高级技术>Java 设计模式

使用Decorator模式添加功能

eIT.com.cn 2008/7/29 12:09:13 阅读 70 次

打印



  作者:eclipse
  
  可能你已经在用Decorator模式了,但是跟所有其他模式一样,知道你为什么使用它,学习使用它跟别的开发者沟通是很重要的。
  
  
  Decorator模式,即Wrapper模式,其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能。当你想一个类具有更多功能的时候,使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能。
  
  
  假定有一个叫做Action的接口有两个方法,act1()、act2()。这个接口有一个具体版本ConcreteAction,Decorator将会是一个实现Action的类,其构造器有一个Action(通常是ConcreteAction)。所以代码如下:
  
  public class ActionDecorator implements Action {
  
   private Action action;
  
   public ActionDecorator(Action action) {
   this.action = action;
   }
  
  
  public void act1() {
   action.act1();
   }
  
   public void act2() {
   // do nothing
   }
  
  }
  
  使用Decorator比使用继承产生更少的类,所以其代码比较简单;但是它通常产生更多的对象,将导致调试难度增加,尤其是因为它增加了灵活度,可能会引入新的错误


  
   来源:收集整理于互联网





相关内容

• 设计模式之非主流存储数据方式 (2008/10/4 17:08:12)
• JAVA入门,DAO设计模式 (2008/10/4 17:08:11)
• Java设计模式的中介者模式 (2008/9/8 18:58:42)
• Java设计模式之迭代器模式 (2008/9/8 18:58:41)
• Java与模式:缺省适配器模式 (2008/9/8 18:58:41)
• Java与模式:合成模式 (2008/9/8 18:58:40)
• Java与模式:适配器模式 (2008/9/8 18:58:39)
• 圣斗士星矢的状态模式和观察者模式 (2008/9/8 18:58:39)
• 使用Decorator模式翻译者:Disneytiger (2008/7/29 12:09:30)
• 利用Observer模式解决组件间通信问题 (2008/7/29 12:09:30)



热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
科技与视觉 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 百科常识 法律知识 科技频道 同城生活系统 留学考研学习


关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明
      Copyright © eIT.com.cn. All Rights Reserved. 豫ICP备20006152号-2