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

相关推荐
小坏讲微服务10 小时前
Spring Cloud Alibaba 整合 Scala 教程完整使用
java·开发语言·分布式·spring cloud·sentinel·scala·后端开发
老鼠只爱大米10 小时前
Java设计模式之外观模式(Facade)详解
java·设计模式·外观模式·facade·java设计模式
vx_dmxq21110 小时前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
9号达人10 小时前
优惠系统演进:从"实时结算"到"所见即所得",前端传参真的鸡肋吗?
java·后端·面试
AAA简单玩转程序设计11 小时前
Java进阶小妙招:ArrayList和LinkedList的"相爱相杀"
java
lkbhua莱克瓦2411 小时前
集合进阶8——Stream流
java·开发语言·笔记·github·stream流·学习方法·集合
20岁30年经验的码农11 小时前
Java Elasticsearch 实战指南
java·开发语言·elasticsearch
okseekw11 小时前
Java 中的注释与关键字的初步学习
java
luv_sw11 小时前
JavaSE-面向对象-构造器
java
okseekw11 小时前
Java 中的类型转换:结合实战代码深入解析
java