装饰器模式
定义:装饰器模式不必改变原有类和使用继承的情况下,动态拓展一个对象的功能
核心就是装饰对象持有原始对象.
1.待装饰的接口
package com.zmfdd.designpatterns.decorator;
public interface Component {
void work();
}
2.接口的实现类 RealComponent,也就是原始对象.
package com.zmfdd.designpatterns.decorator;
public class ReadComponent implements Component {
@Override
public void work() {
System.out.println("原始对象的工作");
}
}
3.抽象装饰器父类,定义了需要的装饰的目标,并对Component进行基础的装饰.
package com.zmfdd.designpatterns.decorator;
public abstract class AbstractDecorator implements Component{
protected Component component;
public AbstractDecorator(Component component){
this.component = component;
}
@Override
public void work() {
component.work();
}
}
4.具体的装饰器
package com.zmfdd.designpatterns.decorator;
public class RealDecorator extends AbstractDecorator {
public RealDecorator(Component component) {
super(component);
}
@Override
public void work() {
System.out.println("前置包装");
super.work();
System.out.println("后置包装");
}
}