• 合适的适配器的最佳模式


           我曾经有一对耳机小米摆在我的面前。但我没有去珍惜,直到她掉进了我一杯水,我就后悔莫,在世界上最痛苦的事莫过于此。假如上天再给我一次机会,我会对你说:我应该买一个防水耳机。话说昨天晚上回到宿舍,禁不住美食的诱惑,大晚上的,咱不能吃,看看也行啊。于是,百度搜索“舌尖上的中国”,看看看着,感觉口渴。于是蹭蹭蹭赶紧找水喝,喝水的时候还不忘把手机拿在手里,耳机插在耳朵里,说时迟,那时快,我的耳机凉快的洗了个澡,可能是由于天气比較热,耳机也想凉快凉快。

           我去市面上没有找到2.5的耳机,基本上是3.5接口,没办法我仅仅好买了个3.5接口的耳机,老板告诉你:“我给你一个适配器”这不问题就攻克了。3.5的接口的耳机在我手机上本来是没法使用的,由于它没有依照2.5接口的设计,而如今我又想使用这幅耳机。于是乎有了“适配器(Adapter)”这个一个东西出来了。Adapter模式的定义:把一个类的接口变换成client所期待的第二种接口,使得原本由于接口不兼容而不能再一起工作的那些类能够一起工作。

    我的耳机插口是2,5的,倒霉熊孩子,买错了,买了一个3.5的,怎么办呢?这个时候须要一个“适配器”来帮助我解决这个问题。

    今天的设计模式就从我们的耳机開始说起---适配器模式。首先来看看我们适配器的结构图:

                

                对上面的类图进行一些阐述:

               目标接口(Target):客户所期待的接口。

    目标能够是详细的或抽象的类,也能够是接口。


               须要适配的类(Adaptee):须要适配的类或适配者类。
               适配器(Adapter):通过包装一个须要适配的对象,把原接口转换成目标接口。

               接下来,以上面的样例,看看我们的代码实现:

               

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Target target = new Adapter();
                target.Provide2_5();
                Console.Read();
            }
        }
        //Targe 这里相当于2.5插孔的耳机
        class Target
        {
          public virtual void  Provide2_5()
          {
              Console.WriteLine("我是2.5的接口");
          }
         }
    
    
    
        //Adaptee 这里相当于3.5插孔的耳机
        class Adaptee
        {
           public virtual void  Provide3_5()
          {
            Console.WriteLine("我是3.5的接口");
          }
        }
    
    
        //Adapter 这里相当于转换器
        class Adapter:Target
        {
           private Adaptee adaptee = new Adaptee();
           public override void Provide2_5()
          {
               adaptee.Provide3_5();
          }
        }
    }
    
                编程如人生,合适的才是最好的。鹰击长空,鱼翔潜底。大自然因它们而变得丰富多彩。仅仅因它们找到了适合自己的位置。人类也是如此,找到属于自己的位置,你的人生才会充惬意义。   

           

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    MySQL数据库的常用命令
    MySQL数据库的概念
    Linux磁盘管理
    linux账号与权限管理
    安装及管理程序
    vi编辑器+常用命令
    centos7下部署elasticsearch7.2集群--Elastic Stack之一
    打开virt-manager界面显示方格乱码
    Rabbitmq之修改日志和数据存放路径
    Rabbitmq之Memory
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4887549.html
Copyright © 2020-2023  润新知