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

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 目标类

复制代码
 1     /// <summary>
 2     /// 目标类
 3     /// </summary>
 4     public class Target
 5     {
 6         public virtual void TargetPrint()
 7         {
 8             Console.WriteLine("My name is Target!");
 9         }
10     }
复制代码

Adaptee类 受改造的类

复制代码
 1     /// <summary>
 2     /// 受改造的类
 3     /// </summary>
 4     public class Adaptee
 5     {
 6         public void AdapteePrint()
 7         {
 8             Console.WriteLine("My name is Adaptee.");
 9         }
10     }
复制代码

Adapter 适配器类

复制代码
 1     /// <summary>
 2     /// 适配器
 3     /// </summary>
 4     public class Adapter : Target
 5     {
 6         private Adaptee adaptee = new Adaptee();
 7         public override void TargetPrint()
 8         {
 9             adaptee.AdapteePrint();
10         }
11     }
复制代码

用户测试类

复制代码
1     class Client
2     {
3         static void Main(string[] args)
4         {
5             Target target = new Adapter();
6             target.TargetPrint();
7             Console.Read();
8         }
9     }
复制代码

运行结果:

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

适配器模式实际生活举例

举例说明:

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

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

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

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

类图参考

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

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

复制代码
 1     /// <summary>
 2     /// 用户标准电压
 3     /// </summary>
 4     public class UserStandardVoltage
 5     {
 6         public virtual void printVoltage()
 7         {
 8             Console.WriteLine("我是用户标准电压220V!");
 9         }
10     }
复制代码

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

1     public class MobileChargingVoltage
2     {
3         public void printVoltage()
4         {
5             Console.WriteLine("我是手机标准充电电压5V");
6         }
7     }

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

复制代码
 1     /// <summary>
 2     /// 电源适配器类
 3     /// </summary>
 4     public class PowerAdapter:UserStandardVoltage
 5     {
 6         private MobileChargingVoltage mobileChargingVoltage = new MobileChargingVoltage();
 7         public override void printVoltage()
 8         {
 9             mobileChargingVoltage.printVoltage();
10         }
11     }
复制代码

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

复制代码
1     class Client
2     {
3         static void Main(string[] args)
4         {
5             UserStandardVoltage userStandardVoltage = new PowerAdapter();
6             userStandardVoltage.printVoltage();
7             Console.Read();
8         }
9     }
复制代码

运行结果

 

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

 

posted @   JiYF  阅读(1390)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
点击右上角即可分享
微信分享提示