桥接模式 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();
} }
实验结果:
红色的圆形
-----------------
红色的正方形
桥接模式优缺点:
缺点:
设计难度比较大,要能正确识别系统中独立变化的维度,具有局限性。
优点:
- 实现抽象部分和实现部分的解耦,比继承的实现方案好点;
- 可扩充并无需修改原有系统;