设计模式-适配器模式

203 阅读2分钟

适配器模式一般是用于开发时,需要在别人基础上进行扩展自己业务所需要的内容,通俗一点,比如现在使用type-c接口的电源线给手机充电,现在换一台lighting接口的手机充电,电压和电流是一致的,接口不一致,这时候就需要用到一个转接口的东西,这种东西就被称为适配器,在程序中也会有此类要求,比如:

一、开发中遇到二次开发,在二次开发中,别人的框架某部份非常复杂,在别人的框架上去做修改,达到某业务能力,但是这种修改耗时又耗力,还不易维护。

二、或者.Net项目中有一个库(dll 非开源组件)需要集成,但是这个库的功能只实现了某一部份你项目所需要的,另一部份需求还是要去实现。

在上述情况中,我们都可以利用适配器模式来解决这类问题,我们来看代码。

namespace Design {
   /**
   * Developer    :  SongQian
   * Time         :  2017/11/30
   * email        :  onlylove1172559463@vip.qq.com
   * Description  :  源始类,某功能对象的原始实现。非开源,不可对其内容修改
   * */
   public class Source {
        public void start() {
             Console.WriteLine("启动服务");
        }
   }
}

比如上述代码是第三方的一个原始功能的模块,我们无法对其修改或者修改成本很大。

namespace Design.Adapter {
   /**
   * Developer    :  SongQian
   * time         :  2017/11/30
   * email        :  onlylove1172559463@vip.qq.com
   * Description  :  编写与第三方库,原始类的函数一致的interface接口。
   * */
   public interface ITargertable {
        //定义跟原始类一样的函数,用于适配接口。
       void start();
   }
}

此接口给我们的main程序入口时使用。

namespace Design.Adapter {
  /**
   * Developer    :  SongQian
   * time         :  2017/11/30
   * email        :  onlylove1172559463@vip.qq.com
   * Description  :  适配器的具体实现,用于在原始行为功能上加上自己业务能力。
   * */
   class Adapter : Source , ITargertable {
       public void start() {
           Console.WriteLine("修改启动内容");
           base.start();
       }
   }
}