下面是一个使用C#实现适配器模式的示例代码:
using System;
// 目标接口
public interface ITarget
{
void Request();
}
// 目标类
public class Target : ITarget
{
public void Request()
{
Console.WriteLine("目标类的请求");
}
}
// 需要适配的类
public class Adaptee
{
public void SpecificRequest()
{
Console.WriteLine("需要适配的类的请求");
}
}
// 适配器类
public class Adapter : ITarget
{
private readonly Adaptee adaptee;
public Adapter(Adaptee adaptee)
{
this.adaptee = adaptee;
}
public void Request()
{
adaptee.SpecificRequest();
}
}
// 示例代码
class Program
{
static void Main(string[] args)
{
Adaptee adaptee = new Adaptee();
ITarget target = new Adapter(adaptee);
target.Request();
Console.ReadKey();
}
}
在上述示例中,我们首先定义了一个目标接口ITarget,它包含了一个Request方法。然后我们创建了一个目标类Target,它实现了目标接口,并提供了具体的业务逻辑。
接下来,我们创建了一个需要适配的类Adaptee,它包含了一个SpecificRequest方法,表示它所提供的不兼容的接口。
然后,我们创建了一个适配器类Adapter,它实现了目标接口ITarget,同时在内部持有一个需要适配的类Adaptee的实例。适配器类中的Request方法实际上是调用了Adaptee的SpecificRequest方法,将其转换成目标接口的调用。
在示例代码中,我们创建了一个Adaptee对象和一个适配器Adapter对象,然后通过适配器对象调用目标接口的Request方法。运行代码后,你将看到"需要适配的类的请求"这个输出。
通过使用适配器模式,我们可以将不兼容的接口转换成目标接口,使得这些不兼容的类可以协同工作。适配器模式可以帮助我们复用已有的代码,提高代码的灵活性和可维护性。