七、桥接模式

  • 目的 : 将抽象部分与其实现部分分离,使它们都可以独立地变化。
  • 核心 : 使用组合代替继承,抽象类包含一个实现接口的引用,将具体实现委托给该引用。
  • 场景 : 跨平台 UI 开发、数据库驱动、设备控制等。

首先是手机壳接口 - 实现部分接口

java 复制代码
package bridge;

/*
  定义手机壳的基本操作,不同的手机壳类型将实现此接口
 */
public interface ICellphoneShell {
    /**
     * 安装手机壳的方法
     * 具体的安装逻辑由实现类完成
     */
    void attachShell();
}

然后是 iPhone6 手机壳实现类 - 具体的实现部分

java 复制代码
package bridge;

/*
 实现了 ICellphoneShell 接口,提供 iPhone6 手机壳的具体安装逻辑
 */
public class IPhone6Shell implements ICellphoneShell {
    @Override
    public void attachShell() {
        System.out.println("安装 iPhone6 手机壳");
        // 这里可以添加 iPhone6 手机壳特有的安装逻辑
    }
}

接着核心来了。抽象手机类 - 抽象部分

java 复制代码
package bridge;

//通过组合功能,实现抽象部分与实现部分的桥接。(这个组合并不是UML中的组合关系)
public abstract class BaseCellphone {

    protected ICellphoneShell shell;		// 桥接的关键:对象组合,通过持有手机壳接口的引用来组合功能

    // 注入手机壳实现
    public BaseCellphone(ICellphoneShell shell) {
        this.shell = shell; 
    }

    /*
     抽象组装方法
     由具体子类实现完整的手机组装流程
     */
    public abstract void assemble();
}

iPhone 手机类 - 扩展的抽象部分

java 复制代码
package bridge;

// 继承自 BaseCellphone,实现具体的 iPhone 手机组装逻辑

public class IPhone extends BaseCellphone {

    //将 shell(手机壳对象)传递给父类进行初始化,这样就将 iPhone 手机与具体的手机壳实现桥接在一起
    public IPhone(ICellphoneShell shell) {
        super(shell);
    }

    /*
     实现 iPhone 手机的组装过程
     组合了手机本身的组装逻辑和手机壳的安装逻辑
     */
    @Override
    public void assemble() {
        System.out.println("组装 iPhone 手机"); // 手机本身的组装逻辑
        shell.attachShell(); // 手机壳的安装逻辑
        // 这里可以添加其他 iPhone 特有的组装步骤
    }
}

最后看主函数入口

java 复制代码
package bridge;

public class MainTest {
    public static void main(String[] args) {
        // 使用桥接模式:将 iPhone 手机与 iPhone6 手机壳进行组合
        // 抽象部分(手机)和实现部分(手机壳)可以独立变化
        BaseCellphone iPhone = new IPhone(new IPhone6Shell());
        iPhone.assemble(); // 执行组装过程
    }
}
相关推荐
芯智工坊5 天前
第10章 Mosquitto桥接模式
网络·数据库·人工智能·mqtt·开源·桥接模式
砍光二叉树16 天前
【设计模式】结构型-桥接模式
设计模式·桥接模式
深念Y23 天前
光猫改桥接模式实战:通过Telnet获取超级管理员密码
ssh·路由器·桥接模式·逆向·光猫·telent·管理员密码
朱一头zcy1 个月前
简单理解NAT(网络地址转换)模式和桥接模式
网络·桥接模式·nat
易水寒陈1 个月前
单片机的工厂方法模式和桥接模式结合使用
单片机·桥接模式·工厂方法模式
geovindu1 个月前
python: Bridge Pattern
python·设计模式·桥接模式
Anurmy1 个月前
设计模式之桥接模式
设计模式·桥接模式
青春易逝丶1 个月前
桥接模式
桥接模式
Initialize-le1 个月前
WMware桥接模式配置静态IP上网
网络协议·tcp/ip·桥接模式