Skip to content

3.2、桥接模式

桥接模式

意图

  • 将抽象部分与它的实现部分分离,使它们都可以独立地变化

通俗解释

  • 长方形和正方形都有四种颜色红黄蓝绿
  • 不使用桥接模式要 8 个类(长红、长黄、长蓝、长绿、正红、正黄、正蓝、正绿),使用后只需要 6 个类

概念

  • 适用于:
    • 不希望在抽象和它的实现部分之间有一个固定的绑定关系
    • 类的抽象以及它的实现都应该可以通过生成子类的方式来扩展
    • 对一个抽象的实现部分的修改应对可以股不产生影响
    • 想对客户完全隐藏抽象的实现部分(C++)
    • 有许多类要生成的类层次结构
    • 想在多个对象间共享实现,但同时要求客户不知道这一点

代码

java

public class BridgeParttern {
    public static void main(String[] args) {
        Product product = new ProductA();
        Color red = new Red();
        product.setColor(red);
    }
}

abstract class Product {
  private String name;
  Protected Color color;

  public void setName(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }

  public void setColor(Color color) {
    this.color = color;
  }

  public abstract void Operation();
}

class ProductA extends Product {
    @Override
    public void Operation() {
        color.OperationImp(this.getName());
    }
}

interface Color {
  public void OperationImp(string name);
}

class Red implements Color {
    @Override
    public void OperationImp(string name) {
        System.out.println("Red: " + name);
    }
}

KESHAOYE-知识星球 V20251108213032