1. 定义
桥接模式(Bridge),将抽象部分与他的实现部分分离,使它们都可以独立的变化。
2. 桥接模式的类图
3. 桥接模式的基本代码
Implementor类:
public interface Implementor {
public abstract void run();
}
ConcreteImplementorA和ConcreteImplementorB等派生类:
public class ConcreteImplementorA implements Implementor {
@Override
public void run() {
System.out.println("实现A执行");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void run() {
System.out.println("实现B执行");
}
}
Abstraction类:
public abstract class Abstraction {
private Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void run(){
implementor.run();
}
}
RefinedAbstraction类:
public class RefinedAbstraction extends Abstraction {
}
客户端实现:
public static void main(String[] args) {
Abstraction ab = new RefinedAbstraction();
ab.setImplementor(new ConcreteImplementorA());
ab.run();
ab.setImplementor(new ConcreteImplementorB());
ab.run();
}
执行结果:
实现A执行
实现B执行4. 何时使用桥接模式
实现系统可能有多角度分类,每一种分类都有可能变化,那就把这种多角度分类分离出来让他们独立变化,减少他们之间的耦合。