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

embedded/2024/11/18 0:18:26/

前言

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

代码

// 桥接口
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();}
}

运行结果

在这里插入图片描述


http://www.ppmy.cn/embedded/138386.html

相关文章

STM32学习笔记------GPIO介绍

STM32F4xx 的 GPIO(通用输入输出)模块是控制器与外设通信的基础模块之一,在嵌入式系统开发中起着至关重要的作用。STM32F4 系列微控制器提供丰富的 GPIO 功能,可以实现多种工作模式,如输入、输出、复用、模拟等。这里我…

ArkTS学习笔记:类的定义和对象的创建

文章目录 1. 准备工作2. 类的定义2.1 语法格式2.2 创建类 3. 对象的创建3.1 语法格式3.2 创建对象 4. 运行程序,查看效果5. 实战总结 1. 准备工作 创建鸿蒙项目 - LearnArkTS 编写首页代码 Entry Component struct Index {State message: string 学习ArkTS;buil…

JavaScript 自动化软件:AutoX.js

<div id"content_views" class"htmledit_views" deep"6"><p></p>

Rust,删除cargo安装的可执行文件

列出安装的文件列表 cargo install --list 删除 rm /Users/ry/.cargo/bin/fancy

Mock.js生成随机数据,拦截 Ajax 请求

Mock.js 是一个用于模拟数据的 JavaScript 库&#xff0c;特别适合用于前端开发过程中生成假数据进行接口测试。它可以拦截 Ajax 请求并生成随机数据&#xff0c;还可以模拟服务器的响应来加速前端开发。 一、安装 Mock.js 可以通过以下几种方式引入 Mock.js&#xff1a; CDN…

minikube start --driver=docker 指定国内镜像

要在Ubuntu 22上使用Minikube并指定国内镜像&#xff0c;你可以根据以下步骤操作&#xff1a; 安装Minikube&#xff1a; 你可以通过阿里云提供的国内源来安装Minikube&#xff0c;这样可以避免访问国外源的问题。使用以下命令安装Minikube&#xff1a; curl -Lo minikube http…

Flink_DataStreamAPI_执行环境

DataStreamAPI_执行环境 1创建执行环境1.1getExecutionEnvironment1.2createLocalEnvironment1.3createRemoteEnvironment 2执行模式&#xff08;Execution Mode&#xff09;3触发程序执行 Flink程序可以在各种上下文环境中运行&#xff1a;我们可以在本地JVM中执行程序&#x…

Chapter 2 - 15. Understanding Congestion in Fibre Channel Fabrics

Fibre Channel Frame Format The size of a Fibre Channel frame can be up to 2,148 bytes carrying up to 2,112 bytes of payload or data, as shown in Figure 2-25. 如图 2-25 所示,光纤通道帧的大小可达 2,148 字节,最多可携带 2,112 字节的有效载荷或数据。 Figure 2…