桌球新人 2023-10-17 11:15 采纳率: 0%
浏览 14

设计模式-桥接模式的疑问

设计模式的桥接模式. 示例代码中两个维度, 其中一个用的接口 另一个用的抽象类, 通过 将接口注入到抽象类中实现的. 为什么不直接用两个接口, 通过 入参来实现桥接呢. 这样看起来更简单.
比如这样:

public interface Color {
    //获取颜色
    String getColor();
}
public interface Car  {
    //获取汽车  注入颜色类
    void getCar(Color color);
}
  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-17 11:18
    关注

    引自强大而免费的微信小程序:皆我百晓生


    在桥接模式中,用抽象类和接口分别代表两个维度的实现是为了实现灵活性和解耦。

    如果直接使用两个接口,在实现类中需要同时实现两个接口的方法,这样会导致实现类与两个接口之间的耦合度很高。而使用桥接模式,抽象出一个接口作为桥梁,将其中一个维度通过接口注入到抽象类中,可以实现两个维度的功能代码分离,降低耦合度。

    另外,使用桥接模式可以实现两个维度的独立扩展。如果直接使用两个接口,当其中一个维度需要扩展时,需要修改实现类,而使用桥接模式,只需要新增一个实现类即可。

    因此,使用桥接模式可以提高代码的可维护性和可扩展性。虽然看起来会多一些接口和抽象类的定义,但能够带来更好的设计和代码结构。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月17日

悬赏问题

  • ¥20 UNITY webgl关于文档的上传和下载问题
  • ¥15 安霸cv22 + rtl8211f 千兆,udp传输丢包
  • ¥15 关于区块链和边缘环境搭建的相关问题
  • ¥15 windows远程桌面断卡重连软件卡顿问题
  • ¥30 Unity 实现扫描效果
  • ¥15 HbuilderX检测不到安卓模拟器
  • ¥15 这个main已经在filename.obj中定义是什么错 C语言
  • ¥15 关于#linux#的问题:exsi8.0系统 怎么更改web访问端口,不用80、443
  • ¥15 使用elementor设计样式
  • ¥15 谁能提供一个中文版的推销咨询网站连接?