桥接用于把抽象化与实现化解耦,使得二者可以独立变化。在一个类存在多个独立变化的维度,多个维度都需要独立进行扩展,而且多个维度可以进行组合的情况下可以使用桥接模式。其中,抽象部分为与业务密切相关的核心维度,其他部分为实现部分;抽象部分关联着实现部分。
public interface Color {
void paint();
}
public class Red implements Color {
@Override
public void paint() {
System.out.println("paint red");
}
}
public abstract class Shape {
Color color;
public Shape(Color color) {
this.color = color;
}
public abstract void draw();
}
public class Circle extends Shape {
public Circle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println("draw circle");
color.paint();
}
}
@Test
public void BridgeTest() {
Shape circle = new Circle(new Red());
circle.draw();
}