C# 中的桥接模式

2025年2月5日 | 阅读 4 分钟

桥接模式 是一种结构型设计模式,它将抽象与其实现分离。它通过创建一个接口来实现,该接口充当实现类和抽象类之间的桥梁,从而将它们的功能拆分为不同的独立类。一类中的更改不会影响另一类。当需要注入抽象及其实现,使其不永久绑定时,C# 桥接设计模式允许这样做,我们可以轻松地添加多个抽象或实现。

主要方法

  • 抽象: “抽象” 是抽象类或接口,通过实现器接口管理具体实现者的高级操作和任务。
  • 实现者: 具体平台实现者将为此接口描述低级操作。
  • 精化抽象: 精化抽象是抽象的子类,通常将实际工作分配给实现者并扩展抽象定义的接口。
  • 使用具体实现者(实现者的子类)执行特定于平台的操作。

实时示例

桥接设计模式中,有两个层。实现层在层次结构中位于抽象层之后。我们可以在那里进行更改,但抽象层保持不变,实现层不受影响。对抽象层所做的任何更改都不会影响实现层。假设我们希望使用遥控器来操作客厅里的电视。在桥接设计模式中,遥控器代表抽象。遥控器向电视发送信号的方式是隐藏的,我们不必担心它。要打开或关闭电视,最重要的是按下电源按钮。

示例

让我们以一个例子来说明 C# 中的桥接设计模式

输出

 
Interface: Base operation with:
ConcretePlatformX: The result in platform X.

extendedInterface: extended operation with:
ConcretePlatformY: The result in platform Y.   

说明

此代码演示了桥接模式,其中抽象及其实现应保持分离。这样,如果其中一个发生变化,另一个可以轻松地跟上。在此示例中,接口是 IPlatform,抽象是 Interface 类。它通过允许 Interface 类通过在 execute 方法中为其分配任务来引用 IPlatform 对象,并且 extendedInterface 类通过提供附加功能来重写此方法。IPlatform 接口定义了特定于平台的实现,ConcretePlatformX 和 ConcretePlatformY 提供了具体的实现。通过实现 PlatformOperation 函数,这些类中的每一个都生成了对其各自平台而言独特的行为。

User 类是与 Interface 类通信的客户端代码。它不考虑任何平台细节。因此,User 类可以使用 Interface 和 IPlatform 对象的任何组合。应用程序通过在 Main 函数中创建具有 ConcretePlatformX 实现的 Interface 对象和具有 ConcretePlatformY 实现的 extendedInterface 对象来演示这种适应性。用户通过单个接口与多个对象交互,展示了桥接架构所实现的解耦和适应性。