桥接模式(Bridge),使它的抽象部分与实现部分分离,使它们都可以独立的变化。
什么叫抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。
实现指抽象类与它的派生类来实现自己的对象。
代码如下:
1 public abstract class Implementor { 2 public abstract void operation(); 3 }
1 /** 2 *派生类ConcreteImplementorA 3 */ 4 public class ConcreteImplementorA extends Implementor{ 5 6 @Override 7 public void operation() { 8 System.out.println("具体实现A的执行方法"); 9 10 } 11 12 }
1 public class ConcreteImplementorB extends Implementor{ 2 3 @Override 4 public void operation() { 5 System.out.println("具体实现B的执行方法"); 6 7 } 8 9 }
1 public class Abstraction { 2 protected Implementor implementor; 3 4 public void operation(){ 5 implementor.operation(); 6 } 7 public Implementor getImplementor() { 8 return implementor; 9 } 10 11 public void setImplementor(Implementor implementor) { 12 this.implementor = implementor; 13 } 14 15 16 }
1 public class RefineAbstraction extends Abstraction{ 2 @Override 3 public void operation() { 4 super.operation(); 5 } 6 }
1 public class BridgeTest { 2 public static void main(String[] args) { 3 Abstraction ab = new RefineAbstraction(); 4 ab.setImplementor(new ConcreteImplementorA()); 5 ab.operation(); 6 ab.setImplementor(new ConcreteImplementorB()); 7 ab.operation(); 8 } 9 }
具体实现A的执行方法
具体实现B的执行方法