桥接模式是针对某个类如果存在多个维度的变化时,将不同变化的维度单独抽象出来,独自变化。如下例:
之前的设计:
采用桥接模式:
代码如下:
- Color (颜色的抽象)
public abstract class Color { public void draw(){}; }
- BlueColor(颜色的具体实现)
public class BlueColor extends Color { public void draw(){ System.out.println("draw blue"); }; }
- Shape(形状的抽象)
public abstract class Shape { Color color; public void buildShape(){}; }
- RectangleShape (形状的具体实现)
public class RectangleShape extends Shape { public void buildShape(){ this.color.draw(); System.out.println("buildShape Rectangle"); }; }
- APP 测试类
public class App { public static void main(String[] args) { Shape shape = new RectangleShape(); shape.color = new BlueColor(); shape.buildShape(); } }