适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望服用一些现存的类,但是接口又与复用环境要求不一致的情况。
Target:这是客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口
class Target
{
public virtual void Request()
{
Console.WriteLine("普通请求");
}
}
Adaptee:需要适配的类
class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("特殊请求");
}
}
Adapter:通过在内部包装一个Adapter对象,把源接口转换成目标接口
class Adapter :Target
{
private Adaptee adaptee = new Adaptee();
public override void Request()
{
adaptee.SpecificRequest();
}
}
客户端:对客户端来说,调用的就是Target的Request();
Target target = new Adapter();
target.Request();
使用一个已经存在的类,但是它的接口和要求不相同时,应该考虑使用适配器模式。
例如使用第三方组件时,不必要改动自己的接口,可以考虑适配器。