目录

设计模式-结构型模式-桥接模式

设计模式-结构型模式-桥接模式

桥接模式Bridge Pattern : 是一种结构型设计模式。

旨在将 抽象部分实现部分 分离,使它们可以独立变化。

它通过组合代替继承, 解决类爆炸 问题,并提高系统的灵活性和可扩展性。

【抽象部分】(Abstraction) :定义高层控制逻辑,并包含一个对实现部分的引用。

扩展抽象部分(Refined Abstraction) :对抽象部分的扩展,提供更多控制逻辑。

【实现部分】(Implementor) :定义底层操作的接口,供抽象部分调用。

具体实现部分(Concrete Implementor) :实现实现部分的接口,提供具体操作。

画图 : 画 不同形状的、不同颜色的 图形。

例如 : 三角形-红色的;三角形-绿色的;圆形-红色的;圆形-绿色的;

分析 : 把 形状定位为 抽象的部分 ,把 填充颜色定位为具体实现部分 ;画图形的时候,组合颜色一并填充。

当需要新增 形状 or 颜色 的时候,只需要新增一个类即可,在使用时可以自由组合。

实际上, 此处的这个 Shap 抽象类,就相当于一个桥的作用

类图结构如下:

https://i-blog.csdnimg.cn/direct/2f96cfc7027a4b17a08ff0e19b522837.png

public interface Color {
    void fillColor();
}
public class ColorRed implements Color{
    @Override
    public void fillColor() {
        System.out.println("填充红色");
    }
}
public class ColorGreen implements Color{
    @Override
    public void fillColor() {
        System.out.println("填充绿色");
    }
}
public abstract class Shap {
	// 聚合 Color  
    protected Color color;

    public Shap(Color color) {
        this.color = color;
    }

    public abstract void draw();
}
public class ShapTriangle extends Shap{
    public ShapTriangle(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.println("绘制三角形");
        color.fillColor();
    }
}
public class ShapCircle extends Shap{
    public ShapCircle(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.println("画圆");
        color.fillColor();
    }
}
public class Test {
    public static void main(String[] args) {
        // 一个颜色的实现对象
        Color colorGreen = new ColorGreen();

        // 绘制不同的形状,组合上对应的颜色对象
        Shap shapCircle = new ShapCircle(colorGreen);
        shapCircle.draw();

        Shap shapTriangle = new ShapTriangle(colorGreen);
        shapTriangle.draw();
    }
}
执行效果:
画圆
填充绿色
绘制三角形
填充绿色