码农百科 桥接模式

marco · 2023-08-28 13:47:09 · 热度: 23

桥接模式(Bridge Pattern)是一种结构型设计模式,它允许你将一个类的功能划分为多个独立的类,以便各个部分可以独立地变化和复用。

在桥接模式中,我们通常有两个接口:一个定义了抽象组件(Abstract Component),另一个定义了具体桥接(Concrete Bridge)。抽象组件接口通常包含一些基本操作,而具体桥接接口则实现了这些操作。

以下是桥接模式的结构图:

+----------------+    +----------------+
|     Abstract    |    |    Concrete    |
|     Component   |    |     Bridge     |
+----------------+    +----------------+
       ^               /  ^
       |               /  |
       v               /  v
+----------------+    +----------------+
|     Abstract    |    |    Concrete    |
|      Usage      |    |   Usage Concrete|
+----------------+    +----------------+

在上面的结构图中,抽象组件和具体桥接之间的关系是聚合关系,而抽象使用和具体使用之间的关系是继承关系。

以下是一个简单的桥接模式示例:

// 抽象组件接口
interface Shape {
    void draw();
}

// 具体桥接接口
interface Color {
    void fill();
}

// 实现具体桥接接口的类
class Red implements Color {
    public void fill() {
        System.out.println("Red color fill");
    }
}

class Blue implements Color {
    public void fill() {
        System.out.println("Blue color fill");
    }
}

// 实现抽象组件接口的类,该类聚合了具体桥接接口的实例
class Circle implements Shape {
    private Color color;
    public Circle(Color color) {
        this.color = color;
    }
    public void draw() {
        System.out.println("Circle - Draw");
        color.fill(); // 通过聚合调用具体桥接接口的方法
    }
}

在上面的示例中,我们通过抽象组件和具体桥接的聚合关系,实现了将颜色的填充功能从形状绘制中解耦出来。现在我们可以独立地改变形状的绘制和颜色的填充。

为您推荐与 设计模式 相关的帖子:

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册