<<设计模式之禅(第二版)>>——第十七

2016-10-18  本文已影响15人  leiiiooo
定义:
装饰模式通用类图
/*
 * 定义抽象的构件
 * */
public abstract class Component {
  public abstract void operate();
}
public class ConcreteCompnent extends Component {

  @Override
  public void operate() {
    // TODO Auto-generated method stub

  }

}

/*
 * 定义抽象的修饰类,通过构造参数传入具体的组件
 * */
public abstract class Decorator extends Component {
  private Component component;

  public Decorator(Component component) {
    // TODO Auto-generated constructor stub
    this.component = component;
  }

  @Override
  public void operate() {
    // TODO Auto-generated method stub
    this.component.operate();
  }

}
public class ConcreteDecorator extends Decorator {

  public ConcreteDecorator(Component component) {
    super(component);
    // TODO Auto-generated constructor stub
  }

  // 定义自己的私有修饰方法
  private void privateMethod() {

  }

  @Override
  public void operate() {
    // TODO Auto-generated method stub
    this.privateMethod();
    super.operate();

  }
}
public class Client {
  public static void main(String[] args) {
    Component component = new ConcreteCompnent();
    Decorator decorator = new ConcreteDecorator(component);
    decorator.operate();
  }
}
优点:
缺点:
上一篇 下一篇

猜你喜欢

热点阅读