【C#设计模式(7)——桥接模式(Bridge Pattern)】

前言

桥接模式的主要作用是将抽象部分和实现部分分离,使它们可以独立地进行扩展、修改和重用,从而增加了系统的灵活性和可维护性。

代码

csharp 复制代码
// 桥接口
public interface IBridge
{
    void Create();
}
//石桥
public class StoneBridge : IBridge
{
    public void Create()
    {
        Console.WriteLine("The bridge is made of stone.");
    }
}
//刚桥
public class SteelBridge : IBridge
{
    public void Create()
    {
        Console.WriteLine("The bridge is made of steel.");
    }
}
//抽象桥类型
public abstract class BridgeType 
{
    protected IBridge bridge;
    protected BridgeType(IBridge bridge)
    {
        this.bridge = bridge;
    }
    public abstract void Create();
}
//拱桥类型
public class ArchBridge : BridgeType
{
    public ArchBridge(IBridge bridge) : base(bridge){}

    public override void Create()
    {
        Console.WriteLine("Creating an arch bridge. ");
        bridge.Create();
    }
}
//钢架桥
public class RigidFrameBridge : BridgeType
{
    public RigidFrameBridge(IBridge bridge) : base(bridge){}
    public override void Create()
    {
        Console.WriteLine("Created a steel bridge.");
        bridge.Create();
    }
}

/*
 * 结构型模式:Structural Pattern
 * 桥接模式:Bridge Pattern
 */
internal class Program
{
    static void Main(string[] args)
    {
        IBridge stone = new StoneBridge();
        IBridge steel = new SteelBridge();

        BridgeType archBridge = new ArchBridge(stone);
        BridgeType rigidFrameBride = new RigidFrameBridge(steel);

        archBridge.Create();
        rigidFrameBride.Create();
        Console.ReadLine();
    }
}

运行结果

相关推荐
海盗123410 小时前
微软技术周报 ——2026-08-03
后端·python·microsoft·c#·.netcore
啦啦啦啦啦zzzz16 小时前
设计模式:桥接模式和组合模式
c++·设计模式·组合模式·桥接模式
dalong1016 小时前
WPF:3D甜甜圈
3d·c#·wpf·甜甜圈
莫得感情 o18 小时前
设计模式 03 · 工厂方法模式
设计模式·工厂方法模式
cyforkk19 小时前
高并发核心设计模式:Single-Flight 原理与实战
设计模式
神秘的MT20 小时前
C# WinForm Socket 类 常用方法 (C# .NET,TCP 场景)
服务器·网络·学习·tcp/ip·c#·winform
神罚天下ET1 天前
c# ACME client (补充)
开发语言·c#
饼干哥哥1 天前
字节Seedance2.5终于上线,这次在收割谁?
人工智能·设计模式·前端框架
董员外1 天前
RAG 系统进化论(六):GraphRAG(基于知识图谱的 RAG),从相似文本走向实体关系
人工智能·后端·设计模式
噗噗夹的TA之旅2 天前
Shader 学习 21:自定义 Render Feature
学习·游戏·unity·c#·游戏引擎·图形渲染