桥接模式(Bridge)是结构型模式
它将抽象部分 与实现部分解耦,使二者可以独立变化,通过组合关系代替继承关系来连接不同的维度。
颜色类
java
public interface Color {
String applyColor();
}
颜色实现类
java
class Blue implements Color {
@Override
public String applyColor() {
return "蓝色";
}
}
java
class Red implements Color {
@Override
public String applyColor() {
return "红色";
}
}
形状类抽象
java
abstract class Shape {
protected Color color; // 组合颜色实现
public Shape(Color color) {
this.color = color;
}
public abstract void draw();
}
形状实现类
java
class Circle extends Shape {
public Circle(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println("绘制" + color.applyColor() + "的圆形");
}
}
java
class Square extends Shape {
public Square(Color color) {
super(color);
}
@Override
public void draw() {
System.out.println("绘制" + color.applyColor() + "的正方形");
}
}
主函数
java
public static void main(String[] args) {
// 红色圆形
Shape redCircle = new Circle(new Red());
redCircle.draw(); // 输出:绘制红色的圆形
// 蓝色正方形
Shape blueSquare = new Square(new Blue());
blueSquare.draw(); // 输出:绘制蓝色的正方形
}
创建不同形状颜色的图形时,需要组合类,不过对于类的增长爆炸并没有完全规避掉,只是减少了部分累的冗余