当前位置: 首页 > article >正文

【C#设计模式(6)——适配器模式(Adapter Pattern)】

前言

C#设计模式(6)——适配器模式(Adapter Pattern)
适配器模式主要用于在不修改现有类的情况下,使本来不包含的类可以一起工作。

代码

//插头接口
public interface IPlug
{
    void Charge();
}
//插头适配
public class Adapter
{
    public void ConverterCharge()
    {
        Console.WriteLine($"{this.GetType().Name}:使用适配插头充电...");
    }
}

//插头类适配
public class PlugClassAdapter : Adapter, IPlug
{
    public void Charge()
    {
        ConverterCharge();
    }
}

//插头对象适配
public class PlugObjectAdpter : IPlug
{
    private Adapter _adapter;
    public PlugObjectAdpter(Adapter adapter)
    {
        this._adapter = adapter;
    }
    public void Charge()
    {
        _adapter.ConverterCharge();
    }
}

 /*
  * 适配器模式:(Adapter Pattern)
  */
 internal class Program
 {
     static void Main(string[] args)
     {
         IPlug plug = new PlugClassAdapter();
         plug.Charge();

         // 对象适配器
         Adapter adaptee = new Adapter();
         PlugObjectAdpter twoPlug = new PlugObjectAdpter(adaptee);
         twoPlug.Charge();

         Console.ReadLine();
     }
 }

运行结果

在这里插入图片描述


http://www.kler.cn/a/396331.html

相关文章:

  • CSS回顾-基础知识详解
  • Ubuntu 18 EDK2 环境编译
  • 深度解析 Feign
  • 高美GULMAY高压发生器维修X射线源维修CF160
  • RabbitMQ轻松构建高效可靠的消息队列系统
  • Go 语言中,golang结合 PostgreSQL 、MySQL驱动 开启数据库事务
  • HelloMeme 上手即用教程
  • MySQL 如何用C语言连接
  • 角谷猜想的步数
  • JMX Exporter源码解读+生产环境最佳实践+解决其抓取指标超时问题
  • 关于adb shell登录开发板后terminal显示不完整
  • Python学习从0到1 day29 Python 高阶技巧 ⑦ 正则表达式
  • 直接映射缓存配置
  • 罗马数字转整数---每日小题
  • ctfshow-web入门-SSTI(web369-web372)下
  • 数据结构-二叉树及其遍历
  • 第二十九篇——线性代数:“矩阵”到底怎么用?
  • 【数据结构】双向链表定义与实现
  • linux 工具curl详解
  • 效益登记册效益管理计划
  • 用WordPress需要学习哪些编程知识
  • CentOS 9 配置网卡
  • Dial-insight:利用高质量特定领域数据微调大型语言模型防止灾难性遗忘
  • NPOI 实现Excel模板导出
  • 【miniMax开放平台-注册安全分析报告-无验证方式导致安全隐患】
  • 【Unity Bug 随记】unity version control 报 xx is not in a workspace.