·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
用装饰者(Decorator)模式添加功能
http://dev.21tx.com 2003年04月15日 翻译:Java研究组织-李巍

你可能已经在使用装饰者(Decorator)模式了,但是象所有的模式一样,重要的是要清楚为什么你要使用它,还有学会如何同其他开发者交流使用它的经验。



装饰者模式――也被叫做包装器(Wrapper)模式――它的主要用途,是在不改变一个类的代码、也不改变它的继承体系的前提下,为这个类增加功能。当你可能想为一个类增加更多功能时,使用装饰者模式意味着你的新版本的代码不必通过继承这个类来重用现有的功能。

给出一个名为Action的接口,它有两个方法:act1()和act2(),再给出一个这个接口的具体类,名为ConcreteAction,那么装饰者是一个实现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
}

}
使用装饰者模式比起使用继承会使类的个数更少,因此代码更简单;然而,使用它通常会使对象的数量更多,而使得调试变得更加困难,尤其是因为增加的灵活性会引入新类型的错误。

上一篇: Visitor Pattern Introduction
下一篇: 谈谈设计模式中的Iterator迭代器

英特尔 酷睿(TM)2双核,送指纹识别器一个,再赠两份好礼,请电800-858-2418

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
晨新科技 版权所有 Created by TXSite.net