桥接模式 Bridge

发布时间 2023-12-21 08:54:44作者: 梅丹隆

一、定义

  • 将抽象部分与它的具体实现部分分离,使它们都可以独立地变化
  • 通过组合的方式建立两个类之间联系,而不是继承


二、适用场景

  • 抽象和具体实现之间需要更多灵活性
  • 一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立进行扩展
  • 不希望使用继承,或因为多层继承导致系统类的个数激增

三、优缺点

1、优点

  1. 分离抽象部分及其具体实现部分
  2. 提高了系统的可扩展性
  3. 符合开闭原则 OpenClose
  4. 符合组合/聚合复用原则

2、缺点

  1. 增加系统的理解与设计难度
  2. 需要正确地识别出系统中两个独立变化的维度

四、代码实现

https://github.com/Meidanlong/all-in-one/tree/master/design/src/main/java/com/mdl/design/pattern/structural/bridge

image.png