【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();
    }
}

运行结果

相关推荐
.房东的猫7 小时前
ERP(金蝶云星空)开发【安装篇】
c#
范纹杉想快点毕业11 小时前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
茂桑15 小时前
DDD领域驱动设计-基础设施层
设计模式·架构
fie888916 小时前
基于C#的推箱子小游戏实现
开发语言·c#
.房东的猫16 小时前
ERP(金蝶云星空)开发【业务数据中心创建和注册】
c#
bugcome_com17 小时前
C# 进阶核心知识点汇总|多项目开发 + 委托 + Lambda + 事件一次吃透
c#
SunflowerCoder19 小时前
基于插件化 + Scriban 模板引擎的高效 HTTP 协议中心设计
http·c#
小温冲冲19 小时前
通俗且全面精讲工厂设计模式
设计模式
进击的小头19 小时前
设计模式与C语言高级特性的结合
c语言·设计模式
小温冲冲19 小时前
通俗且全面精讲单例设计模式
开发语言·javascript·设计模式