桥接设计模式
- 🚩什么是桥接设计模式?
- 🚩桥接设计模式的特点
- 🚩桥接设计模式的结构
- 🚩桥接设计模式的优缺点
- 🚩桥接设计模式的Java实现
- 🚩代码总结
- 🚩总结
🚩什么是桥接设计模式?
桥接模式(Bridge Pattern) 是 结构型设计模式,它将 抽象部分 与 实现部分 分离,使它们可以 独立变化。桥接模式通过 组合 而不是继承来实现抽象与实现的解耦。
使用场景
-  当需要 避免抽象与实现之间的永久绑定 时。 
-  当 抽象部分 和 实现部分 都需要 独立扩展 时。 
-  当需要 在运行时切换实现 时。 
🚩桥接设计模式的特点
-  分离抽象与实现:桥接模式将抽象部分与实现部分分离,使它们可以独立变化。 
-  灵活性:抽象部分和实现部分可以独立扩展,互不影响。 
-  可扩展性:新增抽象或实现时,无需修改现有代码。 
-  解耦:通过组合关系替代继承关系,降低系统的耦合度。 
🚩桥接设计模式的结构
桥接模式主要包含以下部分:
-  Abstraction(抽象部分):定义抽象接口,并维护一个对 实现部分 的引用。 
-  RefinedAbstraction(扩展抽象部分):对抽象部分进行扩展,提供更多的功能。 
-  Implementor(实现部分接口):定义实现部分的接口,供抽象部分调用。 
-  ConcreteImplementor(具体实现部分):实现 Implementor 接口,提供具体的实现。 
图例:
🚩桥接设计模式的优缺点
✅ 优点
-  分离抽象与实现:抽象部分和实现部分可以独立变化,互不影响。 
-  灵活性:可以在运行时动态切换实现。 
-  可扩展性:新增抽象或实现时,无需修改现有代码。 
-  解耦:通过组合关系替代继承关系,降低系统的耦合度。 
❌ 缺点
-  增加复杂性:桥接模式引入了更多的类和对象,增加了系统的复杂性。 
-  设计难度:需要正确识别抽象部分和实现部分,设计难度较高。 
🚩桥接设计模式的Java实现
代码地址:GitHub
- 首先创建实现部分接口Color,定义方法OperationImp()。
/**
 * @author hanson.huang
 * @version V1.0
 * @InterfaceName Color
 * @Description 实现部分接口 Color
 * @date 2025/3/24 10:46
 **/
public interface Color {
    public void OperationImp(String name);
}
- 创建 抽象产品类Product,定义抽象方法 Operation(),并维护一个对接口Color的引用。
/**
 * @author hanson.huang
 * @version V1.0
 * @ClassName Product
 * @Description 产品抽象类
 * @date 2025/3/24 10:40
 **/
public abstract class Product {
    private String name;
    protected Color color;
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setColor(Color color) {
        this.color = color;
    }
    public abstract void Operation();
}
- 创建 扩展抽象部分 ProductA,实现Operation()方法,调用实现部分的方法。
/**
 * @author hanson.huang
 * @version V1.0
 * @ClassName ProductA
 * @Description 扩展抽象部分 ProductA
 * @date 2025/3/24 10:48
 **/
public class ProductA extends Product {
    @Override
    public void Operation() {
        color.OperationImp(this.getName());
    }
}
-  创建 具体实现部分 Red 和 Blue,分别实现OperationImp()方法。- Red
 /** * @author hanson.huang * @version V1.0 * @ClassName Red * @Description 具体实现部分 Red * @date 2025/3/24 10:49 **/ public class Red implements Color { @Override public void OperationImp(String name) { System.out.println(name + ":红色"); } }- Blue
 /** * @author hanson.huang * @version V1.0 * @ClassName Blue * @Description 具体实现部分 Blue * @date 2025/3/24 10:49 **/ public class Blue implements Color { @Override public void OperationImp(String name) { System.out.println(name + ":蓝色"); } }
-  测试桥接模式 
/**
 * @author hanson.huang
 * @version V1.0
 * @ClassName BridgePattern
 * @Description 测试桥接模式
 * @date 2025/3/24 10:59
 **/
public class BridgePattern {
    public static void main(String[] args) {
        Product productA1 = new ProductA();
        Product productA2 = new ProductA();
        Red red = new Red();
        productA1.setName("产品A1");
        productA1.setColor(red);
        productA1.Operation();
        Blue blue = new Blue();
        productA2.setName("产品A2");
        productA2.setColor(blue);
        productA2.Operation();
    }
}
📌 运行结果

🚩代码总结
-  抽象部分 Product定义抽象方法Operation(),并维护一个对 实现部分Color的引用。
-  扩展抽象部分 ProductA实现Operation()方法,调用 实现部分 的方法。
-  实现部分接口 Color定义方法OperationImp()。
-  具体实现部分 Red和Blue分别实现OperationImp()方法。
🚩总结
-  桥接模式(Bridge Pattern) 将 抽象部分 与 实现部分 分离,使它们可以 独立变化。 
-  适用于 避免抽象与实现之间的永久绑定、独立扩展抽象与实现 或 在运行时切换实现 的场景。 
-  Java 实现 需要 定义抽象部分、实现部分接口 以及 具体实现部分,并通过组合关系将两者连接起来。 
✅ 适用场景:
-  需要 避免抽象与实现之间的永久绑定 时。 
-  需要 独立扩展抽象与实现 时。 
-  需要 在运行时切换实现 时。 
创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️




















