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() 来实现绘制圆形的功能。适配器模式将已有的类和接口适配到了客户端所期望的接口,并实现了代码的重用和扩展。

相关推荐
泡海椒3 分钟前
Java 后端最优 PDF 导出方案:jquick-pdf 项目引入与快速测试
java·开发语言·pdf
阿飞7669 分钟前
订单超时自动关单:RabbitMQ 延迟队列 + 定时任务"双保险"实践
java
二炮手亮子15 分钟前
使用云服务+hermes+mino模型 我用微信操控服务器自己编程并部署实操
java·语言模型·ai编程
她的男孩19 分钟前
安全同事找我要"上周所有登录失败记录",我查完数据库:一条都没有
java·后端·架构
m0_5873830024 分钟前
本地同城无人机作业接单系统源码:架构拆解与抢单调度实现
java·小程序·架构·需求分析
光泽雨26 分钟前
IEnumerable<T> 详细讲解
c#·c
FantanLee27 分钟前
面试级「分布式 ID 设计方案」
java
青春易逝丶38 分钟前
Maven
java·maven
吠品43 分钟前
纯HTML+ECharts构建交互式数据看板:实现思路与踩坑记录
java·服务器·数据库
Lost of 程序猿1 小时前
.NET 10 船端单机部署与离线升级实战:从闪退事故到无感回滚
c#·asp.net·.net