1 public class BridgeTest { 2 public static void main(String[] args) { 3 Abstraction imp = new RefinedAbstraction(new ConcreteImplementorA()); 4 imp.operation(); 5 } 6 7 } 8 //抽象化角色 9 abstract class Abstraction{ 10 //实现化角色 11 protected Implementor imp; 12 13 //经过向实现化角色委派完成 14 public void operation(){ 15 imp.operationImp(); 16 } 17 } 18 //修正抽象化角色 19 class RefinedAbstraction extends Abstraction{ 20 public RefinedAbstraction(Implementor imp){ 21 this.imp = imp; 22 } 23 24 //修正化角色能够置换掉实现化角色的方法 25 public void operation(){ 26 System.out.println("Do anotherThing...."); 27 } 28 } 29 //实现化角色 30 abstract class Implementor{ 31 public abstract void operationImp(); 32 } 33 34 //具体实现化角色 35 class ConcreteImplementorA extends Implementor{ 36 37 @Override 38 public void operationImp() { 39 System.out.println("Do something...."); 40 } 41 42 }
桥梁模式是“对变化的封装”原则以及组合、聚合复用原则的极好的例子。在飞机制造系统中,飞机的种类和制造商表明两个不一样的变化因素,而这两个变化因素须要独立地变化。按照对变化的封装原则,它们应当被封装到继承的等级结构中,而这两个等级结构之间应当选择使用聚合关系,避免出现静态的强耦合,这就致使了桥梁模式的设计方案。java