一、什么是装饰模式通过关联机制给类增加行为,其行为的扩展由修饰对象来决定;二、补充说明与继承相似,不同点在于继承是在编译期间扩展父类,而装饰器模式在运行期间动态扩展原有对象;或者说,继承是对类进行扩展,装饰模式是对对象进行扩展;三、角色抽象构件具体构件抽象装饰类具体装饰类说明:具 ...
一、什么是装饰模式
通过关联机制给类增加行为,其行为的扩展由修饰对象来决定;
二、补充说明
与继承相似,不同点在于继承是在编译期间扩展父类,而装饰器模式在运行期间动态扩展原有对象;
或者说,继承是对类进行扩展,装饰模式是对对象进行扩展;
三、角色
抽象构件
具体构件
抽象装饰类
具体装饰类
说明:具体构件、抽象装饰类、具体装饰类的共同父类是抽象构件,具体装饰类继承抽象装饰类并在运行期间装饰具体构件;
四、例子
例子说明:
画家接口Painter,为抽象构件,有两个方法,获取画家描述信息及绘画;
PaintBeginner实现Painter接口,为具体构件;
PainterDecorator实现Painter接口,为抽象装饰类,其内部关联一个Painter对象,通过构造函数获取;
HillPainterDecorator、RiverPainterDecorator、TreePainterDecorator为具体装饰类,表明被装饰的画家能够绘画Hill、River、Tree;
类图:
代码实现:
Painter.java
package com.pichen.dp.decorator;public interface Painter { public abstract String getDescription(); public abstract String painting(); }
原标题:装饰器模式及JAVA IO流例子★★★☆☆
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。