zoukankan      html  css  js  c++  java
  • 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#源码工程文件下载手机电源适配器实例

  • 相关阅读:
    时隔三个月,不言谢归来了。学习播客继续更新日常所学。
    一个网易云音乐的外链URL简单的获取方法
    VisualStudioCode常用主题,与插件设置
    页面a标签统一跳转方法:base 标签
    Web前端开发规范(记录一):团队约定-基本原则
    JS中,正则表达式:match(/^(.*)(.)(.{1,8})$/)[3]分析
    Morgan模块使用
    Config模块使用
    MongoDB安装
    JSP-九大内置对象
  • 原文地址:https://www.cnblogs.com/JiYF/p/6438533.html
Copyright © 2011-2022 走看看