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 @ 2017-02-24 14:48  JiYF  阅读(1359)  评论(0编辑  收藏  举报