7 装饰(Decorator)模式
1.含义
装饰模式又名包装(Wrapper)模式,以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。
与适配器模式的不同点:
它和委派对象实现同一个接口。
2.类图
3.类代码
/*
* 抽象构件角色
*/
public interface Component {
void sampleOperation();
}
/*
* 具体构件角色
*/
public class ConcreteComponent implements Component {
public ConcreteComponent() {
}
public void sampleOperation() {
System.out.println("ConcreteComponent");
}
}
/*
* 装饰角色
*/
public class Decorator implements Component {
private Component component;
public Decorator(Component c) {
this.component = c;
}
public Decorator() {
}
public void sampleOperation() {
component.sampleOperation();
}
}
/*
* 具体装饰角色
*/
public class ConcreteDecorator extends Decorator {
public void sampleOperation() {
super.sampleOperation();
}
}
/*
* 测试类
*/
public class Test {
public static void main(String[] args) {
Component c = new Decorator(new ConcreteComponent());
c.sampleOperation();
}
}
z