C#设计模式--适配器模式

(32)C#设计模式——适配器模式(Adapter Pattern) 引言 在实际的开发过程中,由于应用环境的变化,我们需要的实现在新环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。如何在新环境中调用“现存的对象”呢?采用适配器模式可以解决。适配器模式使得新环境中不需要去重复实现已经存在了的实现,而很好的把现有的对象(指原来环境中的现有对象)加入到新环境中来使用。 详细介绍 定义:把一个类的接口变换成客户端所期待的另一种接口,从而使得原本接口不匹... 阅读详情

0.C#设计模式--简单工厂模式

1.C#设计模式--工厂方法模式

2.C#设计模式--抽象工厂模式

3.C#设计模式--单例模式

4.C#设计模式--建造者模式

5.C#设计模式--原型模式

设计模式:

适配器模式(Adapter Pattern)

简单介绍:

适配器模式(Adapter Pattern)将一个类的接口转换成客户希望的另外一个接口,比如说用户希望将普通家用的220V电压转换成5V给手机充电,那么就需要一个转换设备,手机充电头和充电线,就是这个道理!似乎笔记本电脑的电源线就叫电源适配器,这里的适配器大概就是这个思想

原型模式参与者:

目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。

需要适配的类(Adaptee):需要适配的类或适配者类。

适配器(Adapter):通过包装一个需要适配的对象,将Target这个用户期待的接口转换成用户需要的Adaptee

适配器模式类图:

适配器模式c#代码示例:

Target 目标类

    /// <summary>
    /// 目标类
    /// </summary>
    public class Target
    {
        public virtual void TargetPrint()
        {
            Console.WriteLine("My name is Target!");
        }
    }

Adaptee类 受改造的类

    /// <summary>
    /// 受改造的类
    /// </summary>
    public class Adaptee
    {
        public void AdapteePrint()
        {
            Console.WriteLine("My name is Adaptee.");
        }
    }

Adapter 适配器类

    /// <summary>
    /// 适配器
    /// </summary>
    public class Adapter : Target
    {
        private Adaptee adaptee = new Adaptee();
        public override void TargetPrint()
        {
            adaptee.AdapteePrint();
        }
    }

用户测试类

    class Client
    {
        static void Main(string[] args)
        {
            Target target = new Adapter();
            target.TargetPrint();
            Console.Read();
        }
    }

运行结果:

适配器模式C#源码工程文件下载

适配器模式实际生活举例

举例说明:

假设将普通用户的标准电压220V转换成手机充电的标准电压5V(这里仅仅是举例子,如果有不恰当,还望多多包涵)

目标接口(Target):普通用户标准电压类--->UserStandardVoltage.cs

需要适配的类(Adaptee):手机用户充电电压类-->MobileChargingVoltage.cs

适配器(Adapter):适配器类-->PowerAdapter.cs

类图参考

适配器模式成C#代码生活例子举例说明:

serStandardVoltage类 普通用户家用标准电压220V

    /// <summary>
    /// 用户标准电压
    /// </summary>
    public class UserStandardVoltage
    {
        public virtual void printVoltage()
        {
            Console.WriteLine("我是用户标准电压220V!");
        }
    }

MobileChargingVoltage普通用户手机充电标准电压5V

    /// <summary>
    /// 用户手机充电标准电压
    /// </summary>
    public class MobileChargingVoltage
    {
        public void printVoltage()
        {
            Console.WriteLine("我是手机标准充电电压5V");
        }
    }

PowerAdapter电源适配器类 将用户标准电压220V转换为手机充电标准电压5V

    /// <summary>
    /// 电源适配器类
    /// </summary>
    public class PowerAdapter:UserStandardVoltage
    {
        private MobileChargingVoltage mobileChargingVoltage = new MobileChargingVoltage();
        public override void printVoltage()
        {
            mobileChargingVoltage.printVoltage();
        }
    }

用户测试类:用户使用使用居民标准电压220V的接口,利用适配器既可以得到5V电压标准的接口

    class Client
    {
        static void Main(string[] args)
        {
            UserStandardVoltage userStandardVoltage = new PowerAdapter();
            userStandardVoltage.printVoltage();
            Console.Read();
        }
    }

运行结果

 

适配器模式C#源码工程文件下载手机电源适配器实例

 

C#设计模式-适配器模式 阅读详情

相关推荐

C#设计模式教程(7):适配器模式

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间能够相互合作。适配器的作用是解决那些因接口不兼容而不能一起工作的类的问题,它通过包装一个类的接口转换成另一个期望的接口。

琅嬛福地 428

c#设计模式—适配器模式

1、为什么要用适配器模式? 假设有一个目标抽象类,其中定义了某个客户想要使用的方法(只是定义,没有实现);这时候有另一个类,我们称之为适配者类,其中包含了一些具体的已经实现的方法;由于目标抽象类中定义的方法名称和客户想要真正调用的方法名称不一样,但是我们为了原有系统的稳定性,不想更改目标抽象类,而且适配者类中方法可能源代码我们都看不到,无法更改,这个时候就需要一个中间类,在这个中间类中去实现目标抽...

qq_34059233的博客 1717

MediaPipeUnityPlugin(最新版)摇摆拳人脸识别

MediaPipeUnityPlugin(最新版)摇摆拳人脸识别

不忘初心 方得始终 2984

C#设计模式之---适配器模式

适配器模式(Adapter Pattern)也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。适配器模式是一种结构型模式,一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。(2)对象适配器模式。

风清扬的专栏 777

ArcGIS新手必看:5分钟搞定等高线转DEM栅格(附完整操作截图)

本文详细介绍了在ArcGIS中将等高线转换为DEM栅格的完整流程,包括CAD数据预处理、TIN转栅格和直接插值法两种核心方法,以及常见问题排查与优化技巧。通过实战案例和操作截图,帮助GIS新手快速掌握这一测绘数据处理的核心技能,提升地形分析和三维可视化效率。

dapp9builder的博客 287

CANoe VLAN配置的艺术:如何通过脚本自动化实现高效车载网络测试

本文深入探讨了CANoe VLAN配置的自动化实现,通过CAPL脚本与Python工具链的结合,提升车载网络测试效率。重点解析了硬件侧VLAN配置与软件侧VLAN配置的交互机制,并提供了实用的脚本开发示例和调试技巧,帮助工程师快速构建高效的自动化测试方案。

qqq44的博客 617

C#设计模式--适配器模式(Adapter Pattern)

适配器模式是一种非常实用的设计模式,特别适用于需要将不同接口的类集成在一起的场景。通过适配器模式,可以有效地解决接口不兼容的问题,提高代码的复用性和灵活性。然而,使用适配器模式也会增加系统的复杂性和维护成本,因此在实际开发中需要权衡利弊,合理使用。

仰望星空的人 2967

线程池详解(通俗易懂超级好)

目标 【理解】线程池基本概念 【理解】线程池工作原理 【掌握】自定义线程池 【应用】java内置线程池 【应用】使用java内置线程池完成综合案例 线程池 线程池基础 线程池使用 线程池综合案例 4.学员练习 5.线程池总结 概念介绍 1:什么是线程池 2:为什么使用线程池 3:线程池有哪些优势 什么是池 什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runna.

拉格朗日的学习笔记 12万+

C# 设计模式之适配器模式

C# 设计模式之适配器模式

鲤籽鲲的博客 1538

03、AC分析

本节我们将对之前的BUCK电路进行AC分析! 首先,我们之前的BUCK电路是开环电路,现在我们把它设计成闭环电路!电路图如下: 我们对闭环BUCK电路先瞬态仿真一下,波形如下: 然后在电路中加入小信号和波特图进行AC仿真 原理图如下: 增益为0时所对应的相位裕度为56°,这个相位裕度一定要大于0°,大于45°则比较稳定! ...

soumns丶涛的博客 3522

nvidia系列教程-AGX-Orin系统刷机及备份

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。

flypig has a dream! 3328

【C#设计模式】6.适配器模式(Adapter Pattern)【结构型】

1.1 动机(Motivate) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 1.2 意图(Intent) 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 --《设计模式》Gof .........

星Yeah 的博客 3314

LabVIEW进行MQTT通信及数据解析

该文章介绍了LabVIEW的MQTT通信的开源VI控制,以及如果进行数据的解析,特别是一些需要注意的点

heda3的博客 4107

C# 设计模式:适配器模式(Adapter Pattern)

摘要适配器模式是一种结构型设计模式,它允许不兼容的接口之间能够相互合作。这种模式涉及到一个单独的类,它负责加入独立的或不兼容的接口功能。简单来说,适配器模式就是一个中间件,它使得原本由于接口不兼容而不能一起工作的类可以一起工作。正文应用场景适配器模式通常应用于以下情况:当你希望使用某个类,但是它的接口与其他代码不兼容时。当...

cnzzs的博客 966

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

包括YOLOv5、YOLOv7、YOLOv8等模型改进 347

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

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

weixin_43626218的博客 465

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C#-设计模式-适配器模式

​ 下面让我们看看适配器的定义,适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式有类的适配器模式和对象的适配器模式两种形式,下面我们分别讨论这两种形式的实现和给出对应的类图来帮助大家理清类之间的关系。r。DataAdpter起到了数据库到DataSet桥接器的作用,使应用程序的数据操作统一到DataSet上,而与具体的数据库类型无关。

Asincereman的专栏 1255

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C#设计模式(7)——适配器模式(Adapter Pattern)

C#设计模式(7)——适配器模式(Adapter Pattern) 一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复...

fgmah2000的博客 151

C# 设计模式:第六章 - 结构型模式 之 适配器模式(Adapter Pattern)

在这章中,我们学习了适配器模式的基本概念、应用场景、实现方法以及注意事项。适配器模式提供了一种将一个类的接口转换成客户端期望的另一个接口的方式,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。我们通过两个实际的代码示例展示了如何在 C# 中实现适配器模式,包括基本适配器模式和支付网关适配器。最后,我们还讨论了一些使用适配器模式时需要注意的地方,帮助你在实际开发中做出明智的选择。

caifox的博客 1029

适配器模式(Adapter Pattern)——C#设计模式七

原文地址:http://www.cnblogs.com/zhili/p/AdapterPattern.html 原文作者:Learning hard 一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模...

U3D开发 205

乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

[索引页][×××] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd介绍将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。示例有一个Message实体类,某个类对它的操作有Insert()和Get()方法。现在需要把这个类转到另一个接口,分别对应Add(...

weixin_33949359的博客 78

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

一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用。 二、适配器模式的详细介绍 2.1 定义 下面让我们看看适配器的定义,适配器模式——把一个类的接口变换成客户端所期待的另一种接口,从而使原.

dxm809的博客 226

C# 面试问题大全:033.什么是适配器设计模式(Adapter Design Pattern)?

适配器模式通常有两种实现方式:类适配器和对象适配器。适配器设计模式是一种非常有用的结构型设计模式,它通过接口转换的方式解决了不同组件之间的接口不兼容问题。

caifox的博客 842

设计模式之 适配器模式 C# 范例

/ Target: 定义客户端所期待的接口// Adaptee: 一个旧的播放器,只有播放 MP4 文件的功能适配器模式使得你可以在不改变现有代码的情况下,增加对新接口的支持。通过适配器类来桥接客户端代码与需要适配的类,从而实现接口的兼容性。

搁浅的博客 929
上一篇: C#设计模式--原型模式
下一篇: C#设计模式--装饰器模式
JiYF
博客等级 码龄11年 356粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值