装饰器模式
定义理解
装饰器模式-Decorator Pattern也叫包装器模式(Wrapper Pattern),主要作用是在不改变原有对象的基础上增加原对象的功能。 装饰器模式的核心是功能扩展。
类图
通用实现方法
public abstract class Component {
abstract void doMethod();
}
public class ConComponent extends Component
{
@Override
void doMethod() {
System.out.println("domethod concomponent");
}
}
/**
*装饰器抽象类,继承 被装饰对象同时组合被装饰对象,便于增加被装饰对象的方法,此类可以省略
*
*/
public abstract class Decorator extends Component{
Component component;
public Decorator(Component component){
this.component = component;
}
public void doMethod(){
component.doMethod();
}
}
/**
*装饰器实现类
*
*/
public class ConDecorator extends Decorator
{
public ConDecorator(Component component) {
super(component);
}
private void before(){
System.out.println("decorator method before");
}
private void after(){
System.out.println("decorator method after");
}
public void doMethod(){
this.before();
super.doMethod();
this.after();
}
}
在源码中的使用
-
java中I/O相关的类,
public class BufferedReader extends Reader { private Reader in; }
-
Mybatis Cache类
public class FifoCache implements Cache { private final Cache delegate; }