适配器模式一般是用于开发时,需要在别人基础上进行扩展自己业务所需要的内容,通俗一点,比如现在使用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();
}
}
}