适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。
ITarget target=new Adaptee(); //实现ITarget接口
target.SpecificRequest();
//以上把接口ITarget换成类也可以!
1、 系统需要使用现有的类,而此类的接口不符合系统的需要。
2、 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。
3、 (对对象适配器而言)在设计里,需要改变多个已有子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器,而这不太实际。
public interface ITarget
{
void Request();
}
//要被调用的类
public class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("Called SpecificRequest()" );
}
}
//这就是适配器
public class Adapter : Adaptee,ITarget
{
//接口中调用该类的方法
public void Request()
{
this.SpecificRequest();
}
}
客户端调用: 类Adaptee要被调用,但它不实现某一接口,可以通过适配器Adapter来进行,因为它实现接口{
void Request();
}
//要被调用的类
public class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("Called SpecificRequest()" );
}
}
//这就是适配器
public class Adapter : Adaptee,ITarget
{
//接口中调用该类的方法
public void Request()
{
this.SpecificRequest();
}
}
ITarget target=new Adaptee(); //实现ITarget接口
target.SpecificRequest();
//以上把接口ITarget换成类也可以!
浙公网安备 33010602011771号