定 义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
有些国家用110V电压,而我们国家用的是220V,但是我们的电器,比如笔记本是不能什么电压都能使用的,但是国家不同,电压可能不同也是事实,于是用了一个电源适配器,只要是电,不管多少伏,都能把电源变成需要的电压,这就是电源适配器的作用,适配器的意思就是使一个东西适合另一个东西的东西。
结构图:
Target(这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口)
class Target
{
public virtual void Request()
{
Console.WriteLine("普通请求");
}
}
Adaptee(需要适配的类)
class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("特殊请求");
}
}
Adapter(通过内部包装一个Adaptee对象,把源接口转换成目标接口)
class Adapter : Target
{
private Adaptee adaptee = new Adaptee(); public override void Request()
{
adaptee.SpecificRequest();
}
}
客户端调用:
Adapter adapter = new Adapter();
adapter.Request();
何时使用适配器模式?
1.一个已存在的类,如果它的接口,也就是它的方法和你的要求不一致时(例:命名不规范),应该考虑使用适配器模式。
2.双方都不太容易修改的时候可以考虑使用适配器模式。