返回
Featured image of post 设计模式-Bridge桥接模式

设计模式-Bridge桥接模式

简介

桥接是一种结构型设计模式,可将一个大类或一系列紧密,相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。

问题

同一套服务界面,想在不同的操作系统下实现

解决方案

让我们试着用桥接模式来解决这个问题。该模式建议将类拆分为两个类层次结构:

  • 抽象部分:程序的GUI层
  • 实现部分:操作系统的API

结构

  • 抽象部分(Abstraction)提供高层控制逻辑,依赖于完成底层实际工作的实现对象。
  • 实现部分(Implementation)为所有具体实现声明通用接口。抽象部分仅能通过在这里声明的方法与实现对象交互。
  • 具体实现(Concrete Implementations)中包括特定于平台的代码。
  • 精确抽象(Refined Abstraction)提供控制逻辑的变体。与其父类一样,它们通过通用实现接口与不同的实现进行交互。
  • 通常情况下,客户端(Client)仅关心如何与抽象部分合作。但是,客户端需要将抽象对象与一个实现对象连接起来。

适合应用场景

  1. 如果你想要拆分或重组一个具有多重功能的庞杂类(例如能与多个数据库服务器进行交互的类),可以使用桥接模式。
  2. 如果你希望在几个独立维度上扩展一个类,可使用该模式。
  3. 如果你需要在运行时切换不同实现方法,可使用桥接模式。

优缺点

  • 你可以创建与平台无关的类和程序。
  • 客户端代码仅与高层抽象部分进行互动,不会接触到平台的详细信息。
  • 开闭原则。你可以新增抽象部分和实现部分,且它们之间不会相互影响。
  • 单一职责原则。抽象部分专注于处理高层逻辑,实现部分处理平台细节。
  • 对高内聚的类使用该模式可能会让代码更加复杂。