适配器模式是一种结构型设计模式,它可以将一个或多个不兼容的接口适配成客户端期望的接口。在 C# 中,适配器模式通常采用类适配器或对象适配器的方式实现。
下面是一个简单的类适配器示例:
首先,定义一个客户端期望的目标接口,例如 ICircle:
csharp
public interface ICircle
{
void Draw(int x, int y, int radius);
}
然后,定义一个已有的 Adaptee 类,它具有不兼容的接口:
csharp
public class LegacyCircle
{
public void DrawCircle(int x, int y, int radius)
{
Console.WriteLine($"LegacyCircle: x={x}, y={y}, radius={radius}");
}
}
接着,定义一个适配器类 Adapter,它继承于 Adaptee 类,并同时实现了目标接口 ICircle:
csharp
public class CircleAdapter : LegacyCircle, ICircle
{
public void Draw(int x, int y, int radius)
{
DrawCircle(x, y, radius);
}
}
最后,在客户端中使用适配器来实现目标接口:
csharp
public class Program
{
public static void Main(string[] args)
{
ICircle circle = new CircleAdapter();
circle.Draw(10, 10, 20);
}
}
在这个示例中,适配器 CircleAdapter 继承了 Adaptee 类,同时实现了目标接口 ICircle。这样一来,客户端就可以使用目标接口 ICircle 来调用适配器的方法 Draw(),适配器再调用 Adaptee 类的方法 DrawCircle() 来实现绘制圆形的功能。适配器模式将已有的类和接口适配到了客户端所期望的接口,并实现了代码的重用和扩展。