桥接模式(Bridge模式)

Bridge模式是一种设计模式,旨在将类的功能层次结构与类的实现层次结构分离,通过建立桥梁来实现两者之间的连接。文章介绍了Bridge模式的作用,包括在类中增加新功能和新实现,以及如何通过此模式避免层次结构的混杂。通过实例展示了Display类和DisplayImpl类的角色,解释了如何在Display接口和DisplayImpl接口之间建立联系。

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

Bridge模式

​ Bridge的意思是桥梁。桥梁的功能是将河流的两侧连接i起来,Bridge模式的作用也是将两样东西连接起来,他们分别是类的功能层次结构类的实现层次结构

​ bridge模式的作用是在“类的功能层次结构”和“类的实现层次结构”之间搭建桥梁。

类的层次结构的两个作用

希望增加新功能

​ 假设有一个类someting,当我们想在Something中增加新功能时,会编写一个Something具体的子类,即SomethingGood类。这样就构成了一个类的层次结构。

image-20221212103618433

  • 父类具有基本功能
  • 在子类中新增加功能

​ 这是类的功能层次结构

类的层次结构不应过深。

希望增加新的实现

​ 父类的任务是通过声明抽象方法的方式定义接口,而子类的任务是实现抽象方法。

​ 当子类ConcreteClass实现父类AbstractClass类的抽象方法时,他们之间就构成了一个层次结构。

image-20221212104128722

​ 但是,这里的层次结构并非用于增加功能,它的真正作用的帮助我们实现任务分担。

  • 父类通过声明抽象方法来定义接口
  • 子类通过实现具体的方法来实现接口

​ 这是类的实现层次结构

层次结构的混杂与分离

​ 我们需要将类的功能层次结构与类的实现层次结构分离为两个独立的层次结构。(当结构只有一层时,功能层次与实现层次时混杂在一起的,很容易时=使层次结构变得复杂,不易理解)。如果只是简单的分开,两者之间必然会缺少联系,所以我们还需要建立一座桥梁。

实例程序

类的一览表

层次 名字 说明
功能层次 Display 负责显示的类
功能层次 CountDisplay 增加显示规定次数功能
实现层次 DisplayImpl 负责显示的类
实现层次 StringDisplayImpl 用字符串显示
Main 测试程序

功能层次结构

Display类

​ Display类的功能时抽象的,负责显示一些东西。

​ impl字段保存的实现Display功能的实例。该实例通过构造方法传递保存。

​ open、print、close是Display提供的接口,这3个方法调用了impl的实现方法,这样Display的接口就被转换成了DisplayImpl的接口。

public class Display {
   
    private DisplayImpl impl;

    public Display(DisplayImpl impl) {
   
        this.impl = impl;
    }

    public void open() {
   
        impl.rawOpen();
    }

    public void print() {
   
        impl.rawPrint
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值