适配器模式就是将一个类的接口转换成客户希望的另一个类的接口,使得两个原本由于接口不兼容而不能一起工作的那些类一起工作。它的核心就是将两个没有关系的类组合在一起使用,只要传递了某个类的对象,我们就可以在适配器中调用这个类的方法。有类的适配模式和对象的适配模式之分。
这种模式有三个角色:
目标角色(Target),即所期待得到的接口;
源角色(Adaptee),即已有的需要适配的类(或接口);
适配器角色(Adapter),该类是本模式的核心。适配器把源接口转换成目标接口,显然这一角色不可以是接口,必须是具体类。
下面是该模式的示例性代码:
Using System;
Namespace ClassAdapter
{
// 目标接口
Public Interface Target
{
void Method1(); //源类也有的方法
void Method2(); //源类没有,用户却期待的方法
}
// 需要被适配的源类
Public class Adaptee
{
Public void Method1()
{
Console.WriteLine(“调用Method1方法”);
}
}
// 适配器类
Public class Adapter:Adaptee,Target
{
// Method1()方法以及从Adaptee继承,不需要再实现
// 适配器补充实现Method2方法
Public void Method1()
{
Console.WriteLine(“调用Method2方法”);
}
}
// 客户端代码
Class ClassAdapter
{
Private static Target target;
Static void Main(string[] args)
{
target=new Adapter();
target.Method1();
target.Method2();
}
}
}