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

2016-10-23  本文已影响16人  leiiiooo
定义
通用类图:
桥梁设计模式通用类图
/*
 * 实现化角色
 * */
public interface Implementor {
  // 定义基本方法
  public void doSomething();

  public void doAnything();
}
public class ConcreteImplementorOne implements Implementor {

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

  }

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

  }

}
public class ConcreteImplementorTwo implements Implementor {

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

  }

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

  }

}

public abstract class Abstraction {
  // 定义对实现化角色的引用
  private Implementor imp;

  public Abstraction(Implementor _imp) {// 约束子类必须实现该构造函数
    this.imp = _imp;
  }

  // 自身行为和属性
  public void request() {
    this.imp.doSomething();
  }

  // 获得实例化角色
  public Implementor getImp() {
    return this.imp;
  }
}
public class RefinedAbstraction extends Abstraction {
  // 覆写构造函数
  public RefinedAbstraction(Implementor _imp) {
    super(_imp);
    // TODO Auto-generated constructor stub
  }

  // 修正父类的行为
  @Override
  public void request() {
    // TODO Auto-generated method stub

    /*
     * 业务处理
     */

    super.request();
    super.getImp().doAnything();
  }

}

public class Client {
  public static void main(String[] args) {
    // 定义一个实现化角色
    Implementor imp = new ConcreteImplementorOne();
    // 定义一个抽象化角色
    Abstraction abs = new RefinedAbstraction(imp);

    abs.request();
  }
}
优点:
使用场景:
注意事项:
上一篇 下一篇

猜你喜欢

热点阅读