官方网站建设要点,企业网址怎么注册,python手机版,衣服品牌logo大全桥接设计模式 #x1f6a9;什么是桥接设计模式#xff1f;#x1f6a9;桥接设计模式的特点#x1f6a9;桥接设计模式的结构#x1f6a9;桥接设计模式的优缺点#x1f6a9;桥接设计模式的Java实现#x1f6a9;代码总结#x1f6a9;总结 #x1f6a9;什么是桥接设计模式… 桥接设计模式 什么是桥接设计模式桥接设计模式的特点桥接设计模式的结构桥接设计模式的优缺点桥接设计模式的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 {Overridepublic 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 {Overridepublic 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 {Overridepublic 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 实现 需要 定义抽象部分、实现部分接口 以及 具体实现部分并通过组合关系将两者连接起来。
✅ 适用场景 需要 避免抽象与实现之间的永久绑定 时。 需要 独立扩展抽象与实现 时。 需要 在运行时切换实现 时。 创作不易不妨点赞、收藏、关注支持一下各位的支持就是我创作的最大动力❤️