设计模式—装饰器模式(Decorator)

来源:互联网 发布:windows损坏文件 编辑:程序博客网 时间:2024/05/22 12:21


一、定义

装饰器模式,能够动态的给一个对象添加一些额外的职责;就增加功能来说,装饰器模式比生成子类更为灵活。

能够以对客户端透明的方式来扩展对象的功能,是继承关系的一种替代方案。

其结构可用下图表示,(注:此图来自《大话设计模式——程杰》)




二、主要作用

如果不用装饰器模式,当系统需要新功能的时候,可以向旧的类中添加新代码,这些新代码装饰了原有类的核心职责和主要行为。但是在主类中增加新的字段,新的方法,会增加主类的复杂性。而且通常这些新加的特性和方法只在某些特殊的情况下才会用到。

装饰器模式提供了一种很好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所需要的装饰的对象,因此,当需要执行特殊行为时,就可以在运行时有选择的利用装饰功能来包装对象了。


三、应用

1、在Java I/O库中的应用

下图取自《Java与模式》之装饰模式一文。


0 0
原创粉丝点击