1.什么是适配器模式:
适配器模式(也称包装样式或包装)将一个类的接口转换成客户希望的另外一个接口;
适配器模式通过定义一个新的接口(对要实现的功能加以抽象),和一个实现该接口的Adapter(适配器)的类来透明的调用外部的组件,如此以来方便了不少,在替换外部组件时,最多只要修改几个Adapter类就可以了,而其他的源代码都不会受到影响。
还可以这样理解:如果你想要一个东西,但是这个东西在你眼前你却的不到它,这时候你就要想办法去的到它;或者说:我们国家的电压是220V,但是你的电脑和手机承受不了这么高的电压,这时候我们充电器会把220的电压给改造成成你的手机电脑,所能承受,匹配的电压。
代码表示:
//Rarget(这是客户所期待的接口,目标可以使具体的或抽象的类,也可以是接口)。
class Target
{
public virtual void Request()
{
Console.WriteLine("普通请求");
}
}
//Adaptee (这是需要适配的类)。
class Adaptee
{
public void SepcificRequest()
{
Console.WriteLine("特殊请求");
}
}
//Adapter(通过在内部包装一个Adaptee对象,把源接口转换成目标接口)。
class Adapter : Target
{
private Adaptee adaptee = new Adaptee(); //建立一个私有的 Adaptee对象
public override void Request()
{
adaptee.SepcificRequest(); //这样就可以把表面上调用 Request() 方法变成实际
调用SpecificRequest()
}
}
客户端代码:
static void Main(string[] args)
{
Target target = new Adaptee();
target.Request();
Console.ReadKey();
}
在什么时候使用适配器模式:
(1)在两个类所做的事情相同或相似,但是具有不同的接口时要使用它;而且两个类都有共享同一个接口时。
(2)在双方都不太容易修改的时候在使用适配器模式。