C# 适配器模式

适配器模式是一种结构型设计模式,它可以将一个或多个不兼容的接口适配成客户端期望的接口。在 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() 来实现绘制圆形的功能。适配器模式将已有的类和接口适配到了客户端所期望的接口,并实现了代码的重用和扩展。

相关推荐
老鱼说AI1 分钟前
现代 LangChain 开发指南:从 LCEL 原理到企业级 RAG 与 Agent 实战
java·开发语言·人工智能·深度学习·神经网络·算法·机器学习
aini_lovee9 分钟前
C#与倍福PLC(通过ADS协议)通信上位机源程序实现
开发语言·c#
云烟成雨TD29 分钟前
Spring AI Alibaba 1.x 系列【51】Graph 整体运行全流程
java·人工智能·spring
霑潇雨1 小时前
Spark学习基础转换算子案例(单词计数(WordCount))
java·大数据·分布式·学习·spark·maven
夏日听雨眠1 小时前
Linux(信号,管道,共享内存)
java·服务器·网络
TANGLONG2221 小时前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
zmsofts1 小时前
IntelliJ IDEA)因为内存不足而崩溃
java·ide·intellij-idea
2501_930707781 小时前
使用C#代码压平 PDF 表单字段
数据库·pdf·c#
Dlrb12111 小时前
C语言-字符串指针与函数指针
java·c语言·前端
萝卜白菜。1 小时前
通过cmdline-jmxclient.jar采集TongWeb8.0监控值
java·jar