Java设计模式—桥接模式(Bridge)

本文介绍了桥接模式的概念、优点和类图结构,并通过Java代码示例展示了如何使用桥接模式来处理不同品牌手机的问题。进一步探讨了JDBC中的桥接模式应用,说明其如何实现不同数据库连接的抽象与实现分离,提高系统灵活性。同时,指出了桥接模式的适用场景和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

桥接模式

业务需求

  • 不同类型的手机,有不同的品牌
  • 传统的方式,每一个类型的手机,有对应的不同的品牌

传统解决方案问题分析

  • 扩展性问题,类爆炸,如果再增加手机样式,还要增加各个品牌的手机;如果新增一个品牌,也要在各个样式中添加该品牌
  • 违反单一职责原则,增加了代码维护成本
  • 解决方案,桥接模式

在这里插入图片描述
在这里插入图片描述
基本介绍

  • 将实现与抽象放在两个不同的类层次中,是两个层次可以独立改变
  • 是一种结构型设计模式
  • 桥接模式基于类的最小设计原则,通过使用封装、聚合、继承的行为让不同的类承担不同的职责;
  • 主要优点是把抽象与实现分离开来,保持了各部分的独立性以及应对他们的功能扩展

在这里插入图片描述
类图说明

  • Client类:桥接模式调用者
  • 抽象类(Abstraction):维护了Implementor,即他的实现类 ConcreteImplementor,二者是聚合关系,Abstraction充当桥接类
  • RefinedAbstraction:Abstraction的子类
  • Implementor:行为实现类的接口,
  • ConcreteImplementorA/B:行为的具体实现类
  • 从类图可以看出,这里的抽象类和接口时聚合关系,调用和被调用的关系

在这里插入图片描述
代码实现

品牌接口

// 品牌接口
public interface Brand {
   
    void open();
    void close();
    void call();
}

小米手机

// 小米品牌
public class Xiaomi implements Brand{
   
    @Override
    public void open() {
   
        System.out.println("小米手机开机");
    }
    @Override
    public void close() {
   
        System.out.println("小米手机关机");
    }
    @Override
    public void call() {
   
        System.out.println("小米手机打电话");
    }
}

Vivo手机

// Vivo品牌
public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值