设计模式 -- 桥接模式(Bridge Pattern)
桥接模式 Bridge Pattern 结构设计模式
定义:
- 分离抽象部分和实现部分,使他们独立运行。
- 避免使用继承导致系统类个数暴增,可以考虑桥接模式。
- 桥接模式将继承关系转化为关联关系,减少耦合,减少代码量。
例如:
public interface Shape { public void bepaint(String color); }
public abstract class Color { Shape shape; public void setShape(Shape shape) { this.shape = shape; } public abstract void draw(); }
public class Red extends Color { @Override public void draw() { shape.bepaint("红色"); } }
public class Green extends Color { @Override public void draw() { shape.bepaint("绿色"); } }
public class Circle implements Shape { @Override public void bepaint(String color) { System.out.println(color + "的圆形"); } }
public class Square implements Shape { @Override public void bepaint(String color) { System.out.println(color + "的正方形"); } }
public class Test { /** * @param args */ public static void main(String[] args) { Shape circle_shape = new Circle(); Color red_color = new Red(); red_color.setShape(circle_shape); red_color.draw(); System.out.println("-----------------"); Shape square_shape = new Square(); red_color.setShape(square_shape); red_color.draw(); } }
实验结果:
红色的圆形 ----------------- 红色的正方形
桥接模式优缺点:
缺点:
设计难度比较大,要能正确识别系统中独立变化的维度,具有局限性。
优点:
- 实现抽象部分和实现部分的解耦,比继承的实现方案好点;
- 可扩充并无需修改原有系统;