Java 设计模式之桥接模式(Bridge Pattern)

文章目录

  • Java 设计模式之桥接模式(Bridge Pattern)
  • 1\. 概述
  • 2\. 模式结构
  • 3\. 模式原理
  • 4\. UML 类图
  • 5\. 示例代码
1. 概述

桥接模式(Bridge Pattern)是一种用于将抽象部分与其实现部分分离的结构型设计模式。这种模式通过组合关系而不是继承关系来连接抽象与实现,使代码更具扩展性和维护性。桥接模式的核心思想是将抽象和实现解耦,使得两者可以独立变化。

2. 模式结构

桥接模式包括以下几个部分:

  • 抽象部分(Abstraction):定义抽象接口,并持有一个指向实现部分对象的引用。
  • 精确抽象部分(Refined Abstraction):扩展抽象部分,增加具体功能。
  • 实现部分(Implementor):定义实现接口,提供基本操作的定义。
  • 具体实现部分(Concrete Implementor):具体实现 Implementor 接口,提供具体的操作实现。
3. 模式原理

桥接模式的原理是通过组合关系来代替继承关系,将抽象部分和实现部分分离,使得它们可以独立地变化。这样可以避免类的数量爆炸,提高代码的扩展性和维护性。具体来说:

  1. 抽象和实现分离:通过引入一个实现接口,使得抽象部分不直接依赖具体实现,而是依赖于接口。
  2. 独立变化:抽象部分和实现部分可以独立地变化和扩展,互不影响。
  3. 运行时绑定:在运行时,可以动态地将抽象部分和具体实现部分组合起来。
4. UML 类图
Abstraction
+operation()
-Implementor: Implementor
RefinedAbstraction
+operation()
Implementor
+operationImpl()
ConcreteImplementorA
+operationImpl()
ConcreteImplementorB
+operationImpl()
5. 示例代码

我们以图形绘制为例,假设有不同类型的图形和不同的颜色。通过桥接模式,我们可以将图形和颜色分离,使它们可以独立变化。

Step 1: 定义实现接口 Color

// 实现接口,用于定义颜色的操作
public interface Color {
void applyColor(); // 应用颜色的方法
}

Step 2: 实现具体的颜色 RedGreen

// 具体的红色实现类,实现 Color 接口
public class Red implements Color {
@Override
public void applyColor(

更多设计模式请参考:Java 中的 23 种设计模式详解