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