设计模式之桥接模式

桥接模式是一种结构型设计模式,分离抽象接口与其实现部分,保持两者独立变化。文章介绍了桥接模式的四个角色:Abstraction、RefinedAbstraction、Implementor和ConcreteImplementor,并通过汽车品牌和引擎的选择作为例子,展示了如何避免继承导致的子类爆炸问题。桥接模式提高了系统灵活性,减少了子类数量,降低了维护成本,但设计难度也随之增加。适用场景包括JDBC驱动、银行转账系统等。
摘要由CSDN通过智能技术生成

桥接模式

桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式是一种结构型设计模式,它基于类的最小设计原则,通过使用封装、聚合及集成等行为让不同类承担不同的职责。

它主要的特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。

桥接模式的四个角色

  • Abstraction:定义抽象接口,拥有一个Implementor类型的对象引用
  • RefinedAbstraction:扩展Abstraction中的接口定义
  • Implementor:是具体实现的接口,Implementor和RefinedAbstraction接口并不一定完全一致,实际上这两个接口可以完全不一样Implementor提供具体操作方法,而Abstraction提供更高层次的调用
  • ConcreteImplementor:实现Implementor接口,给出具体实现
image-20200911101453384

举一个栗子

假设某个汽车厂商生产三种品牌的汽车:Big、Tiny和Boss,每种品牌又可以选择燃油、纯电和混合动力。如果用传统的继承来表示各个最终车型,一共有3个抽象类加9个最终子类:

                   ┌───────┐
                   │  Car  │
                   └───────┘
                       ▲
    ┌──────────────────┼───────────────────┐
    │                  │                   │
┌───────┐          ┌───────┐          ┌───────┐
│BigCar │          │TinyCar│          │BossCar│
└───────┘          └───────┘          └───────┘
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值