自己对装饰者模式的理解
2017-02-09 14:12
225 查看
1. 定义:动态地将责任附加到对象上若要扩展功能,装饰者提供了比继承更有弹性的替代方案
2. 实现方式:
装饰者继承于需要装饰类的抽象父类,并实现所需的方法,通过这样实现类型匹配。
并有一个该抽象父类的数据成员,通这个来保证原有的实现。
3. 体现的OO原则:
针对接口口编程,不针对实现编程:
在使用组合上使用的抽象父类,提高了扩展性
多用组合,少用继承:
采用组合和委托的方式,使其在运行中也能够动态添加新的功能
封装变化:
变化的是类功能的改变,采用观察者模式可以允许改类的功能扩展,但是却没有修改本身的类
开闭原则:
对修改封闭,对扩展开放对于被装饰的类来说,它因为需求的更改而扩展功能,采用装饰者模式,可以让它自身不用被修改,通过包装的形式,在它原有的基础上添加
4. 装饰者会产生很多小的对象,过度使用会造成复杂
5. 装饰者一般来说对使用者来说是透明的,除非使用者依赖于某特殊的具体类型
2. 实现方式:
装饰者继承于需要装饰类的抽象父类,并实现所需的方法,通过这样实现类型匹配。
并有一个该抽象父类的数据成员,通这个来保证原有的实现。
3. 体现的OO原则:
针对接口口编程,不针对实现编程:
在使用组合上使用的抽象父类,提高了扩展性
多用组合,少用继承:
采用组合和委托的方式,使其在运行中也能够动态添加新的功能
封装变化:
变化的是类功能的改变,采用观察者模式可以允许改类的功能扩展,但是却没有修改本身的类
开闭原则:
对修改封闭,对扩展开放对于被装饰的类来说,它因为需求的更改而扩展功能,采用装饰者模式,可以让它自身不用被修改,通过包装的形式,在它原有的基础上添加
4. 装饰者会产生很多小的对象,过度使用会造成复杂
5. 装饰者一般来说对使用者来说是透明的,除非使用者依赖于某特殊的具体类型
相关文章推荐
- 从装饰者模式的理解说JAVA的IO包
- 深入理解JavaScript系列(29):设计模式之装饰者模式
- 装饰者模式理解
- 设计模式入门--自己的理解
- 设计模式: 自己手动写一个装饰者模式
- 自己看着视频的理解:设计模式之abstractfactory模式(2)
- 快速理解装饰者模式
- 关于装饰者模式的个人理解
- 深入理解JavaScript系列(29):设计模式之装饰者模式
- Activity的四种启动模式的自己理解
- 实习之路2--设计模式之装饰者模式的理解(装饰IO流操作)
- 关于装饰者模式的开发理解
- 简单理解设计模式之装饰者模式
- 模式识别的理解(完全是自己体会后写的)
- 我对装饰者模式的理解
- 自已理解的装饰者模式
- 从装饰者模式的理解说JAVA的IO包
- [面试] - jdk 中的设计模式(加入自己的理解)
- 模式识别的理解(完全是自己体会后写的)
- 谈谈对java I/O中装饰者模式的理解