下面是一个使用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方法。运行代码后,你将看到"需要适配的类的请求"这个输出。
通过使用适配器模式,我们可以将不兼容的接口转换成目标接口,使得这些不兼容的类可以协同工作。适配器模式可以帮助我们复用已有的代码,提高代码的灵活性和可维护性。