【C#设计模式(6)——适配器模式(Adapter Pattern)】

ops/2024/11/14 11:06:09/

前言

C#设计模式(6)——适配器模式(Adapter Pattern)
适配器模式主要用于在不修改现有类的情况下,使本来不包含的类可以一起工作。

代码

//插头接口
public interface IPlug
{void Charge();
}
//插头适配
public class Adapter
{public void ConverterCharge(){Console.WriteLine($"{this.GetType().Name}:使用适配插头充电...");}
}//插头类适配
public class PlugClassAdapter : Adapter, IPlug
{public void Charge(){ConverterCharge();}
}//插头对象适配
public class PlugObjectAdpter : IPlug
{private Adapter _adapter;public PlugObjectAdpter(Adapter adapter){this._adapter = adapter;}public void Charge(){_adapter.ConverterCharge();}
}/** 适配器模式:(Adapter Pattern)*/internal class Program{static void Main(string[] args){IPlug plug = new PlugClassAdapter();plug.Charge();// 对象适配器Adapter adaptee = new Adapter();PlugObjectAdpter twoPlug = new PlugObjectAdpter(adaptee);twoPlug.Charge();Console.ReadLine();}}

运行结果

在这里插入图片描述


http://www.ppmy.cn/ops/133263.html

相关文章

CCF ChinaOSC |「开源科学计算与系统建模openSCS专题分论坛」11月9日与您相约深圳

2024年11月9日至10日,以“湾区聚力 开源启智”为主题的2024年中国计算机学会中国开源大会(CCF ChinaOSC)将在深圳召开。大会将汇聚国内外学术界、顶尖科技企业、科研机构及开源社区的精英力量,共同探索人工智能技术和人类智慧的无…

二维、三维情况下的锚点优选方法

多锚点定位时,锚点的选择对定位精度有重要影响。下面介绍基于误差最小化的锚点选择的相应公式和MATLAB代码示例,并进行详细分析 文章目录 方法描述代码MATLAB代码示例代码运行结果 总结 方法描述 选择能够最小化定位误差的锚点组合。通过计算锚点位置与…

LabVIEW开发相机与显微镜自动对焦功能

自动对焦是显微成像系统中的关键功能,通常由显微镜的电动调焦模块或特定的镜头系统提供,而工业相机则主要用于高分辨率图像的采集,不具备独立的自动对焦功能。以下是自动对焦的工作原理、实现方式及实际应用案例。 1. 自动对焦的工作原理 &a…

设计模式设计模式

设计模式原则 开闭原则里氏替换原则单一职责原则依赖倒置原则接口隔离原则迪米特法则 设计模式分类 ###创建型模式,共五种: 工厂方法模式抽象工厂模式单例模式建造者模式原型模式 结构型模式,共七种: 适配器模式装饰器模式代…

AI学习笔记

目录 专业词汇 AI、NLP和AIGC的关系 涌现能力(Emergent Ability) 专业词汇 专业词汇 (缩写) 英文中文AIArtificial Intelligence人工智能AIGCArtificial Intelligence Generated Content人工智能生成内容PGCProfessional Generated Content专业生成内容UGCUser Generated Co…

【C++】 C++游戏设计---五子棋小游戏

1. 游戏介绍 一个简单的 C 五子棋小游戏 1.1 游戏规则&#xff1a; 双人轮流输入下入点坐标横竖撇捺先成五子连线者胜同一坐标点不允许重复输入 1.2 初始化与游戏界面 初始化界面 X 输入坐标后 O 输入坐标后 X 先达到胜出条件 2. 源代码 #include <iostream> #i…

虚拟机linux7.9下安装mysql

1.MySQL官网下载安装包&#xff1a; MySQL :: Download MySQL Community Server https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 2.解压文件&#xff1a; #tar xvzf mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 3.移动文件&#…

我的博客网站为什么又回归Blazor了

引言 在博客网站的开发征程中&#xff0c;站长可谓是一路披荆斩棘。从最初的构思到实践&#xff0c;先后涉足了多种开发技术&#xff0c;包括 MVC、Razor Pages、Vue、Go、Blazor 等。在这漫长的过程中&#xff0c;网站版本更迭近 10 次&#xff0c;每一个版本都凝聚着站长的心…