java设计模式---装饰者设计模式
来源:互联网 发布:打击电信网络诈骗视频 编辑:程序博客网 时间:2024/05/17 23:42
一,什么是装饰者设计模式?
动态地给一个对象添加一些额外的职责或者行为。就增加功能来说, Decorator模式相比生成子类更为灵活。他提供了改变子类的灵活方案。装饰器模式在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。当用于一组子类时,装饰器模式更加有用。如果你拥有一族子类(从一个父类派生而来),你需要在与子类独立使用情况下添加额外的特性,你可以使用装饰器模式,以避免代码重复和具体子类数量的增加。
二,使用的范围
在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
处理那些可以撤消的职责。
当不能采用生成子类的方法进行扩充时。
三,特点
1)使用装饰器设计模式设计类的目标是: 不必重写任何已有的功能性代码,而是对某个基于对象应用增量变化。
2) 装饰器设计模式采用这样的构建方式: 在主代码流中应该能够直接插入一个或多个更改或“装饰”目标对象的装饰器,
同时不影响其他代码流。
3) Decorator模式采用对象组合而非继承的手法,实现了在运行时动态的扩展对象功能的能力,
而且可以根据需要扩展多个功能,避免了单独使用继承带来的“灵活性差”和“多子类衍生问题”。
同时它很好地符合面向对象设计原则中“优先使用对象组合而非继承”和“开放-封闭”原则。
也许装饰器模式最重要的一个方面是它的超过继承的能力。“问题”部分展现了一个使用继承的子类爆炸。
基于装饰器模式的解决方案,UML类图展现了这个简洁灵活的解决方案
一个简单易懂的例子:
http://blog.csdn.net/nugongahou110/article/details/50413668
阅读全文
0 0
- Java设计模式-装饰者设计模式
- java设计模式---装饰者设计模式
- Java 装饰者设计模式
- Java设计模式--装饰者
- Java装饰设计模式
- Java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java 装饰设计模式
- java 装饰设计模式
- Java装饰设计模式
- Java 装饰设计模式
- Java装饰设计模式
- Java设计模式:装饰者模式(Decorator)
- java设计模式之装饰者模式
- 【Java设计模式】装饰者模式
- Java设计模式之装饰者模式
- JAVA系列-设计模式-装饰者模式
- ABP学习:领域层创建实体(使用MySql数据库)
- CountDownLatch使用countDown方法来触发其他等待线程再执行的问题
- android AIDL,跨进程通讯
- 为什么Java工具类方法为静态类
- memcache和memcached的区分
- java设计模式---装饰者设计模式
- EDW与维度模型间的抉择
- 集群时间点同步及完全分布式搭建
- 嵌入式开发(ARM9)学习笔记(八)-NFS与TFTP服务器配置
- BZOJ 1562: [NOI2009]变换序列 【二分图匹配】【匈牙利】
- synchronized(同步修饰词)
- UVA 11383 Golden Tiger Claw
- java 常用设计模式(单例设计模式)
- 开源数据库中间件对比