设计模式—装饰器模式(Decorator)
来源:互联网 发布:windows损坏文件 编辑:程序博客网 时间:2024/05/22 12:21
一、定义
装饰器模式,能够动态的给一个对象添加一些额外的职责;就增加功能来说,装饰器模式比生成子类更为灵活。
能够以对客户端透明的方式来扩展对象的功能,是继承关系的一种替代方案。
其结构可用下图表示,(注:此图来自《大话设计模式——程杰》)
二、主要作用
如果不用装饰器模式,当系统需要新功能的时候,可以向旧的类中添加新代码,这些新代码装饰了原有类的核心职责和主要行为。但是在主类中增加新的字段,新的方法,会增加主类的复杂性。而且通常这些新加的特性和方法只在某些特殊的情况下才会用到。
装饰器模式提供了一种很好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所需要的装饰的对象,因此,当需要执行特殊行为时,就可以在运行时有选择的利用装饰功能来包装对象了。
三、应用
1、在Java I/O库中的应用
下图取自《Java与模式》之装饰模式一文。
0 0
- 设计模式 —— 装饰器模式(Decorator Pattern)
- 设计模式—装饰器模式(Decorator)
- JAVA设计模式:装饰器(Decorator)
- 设计模式——装饰器(Decorator)
- 设计模式 - 装饰 Decorator
- Decorator(装饰)设计模式
- java设计模式:装饰器模式[Decorator]
- 设计模式之-Decorator--装饰器模式
- java设计模式:装饰器模式[Decorator]
- 设计模式9 - 装饰器模式Decorator
- [设计模式]装饰器模式(Decorator)
- 设计模式之: Decorator(装饰器)模式
- 设计模式(9) 装饰器模式(DECORATOR)
- [设计模式]-装饰器模式(Decorator)
- 设计模式-装饰器模式(Decorator)
- 设计模式系列-----------装饰器模式(Decorator)
- 设计模式:6. 装饰器模式(Decorator)
- 设计模式--装饰器(Decorator)模式
- 【iOS】OC总结
- lua模块的几种实现方式
- 多线程断点下载
- android post提交数据
- Android studio提交SVN需要忽略的文件
- 设计模式—装饰器模式(Decorator)
- leetcode 做题记录
- Jetty实战之 安装 运行 部署
- ORACLE内存管理简述1
- php高级函数【递归函数】
- 记录下过年要写的博客
- Plugin is too old, please update to a more recent version 解决办法 2016.1.2
- 使用keytool生成证书和秘钥
- /bin/sh^M:损坏的解释器: 没有那个文件或目录