博客
关于我
C# 适配器模式
阅读量:361 次
发布时间:2019-03-04

本文共 1394 字,大约阅读时间需要 4 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 适配器模式{    class Program    {        static void Main(string[] args)        {            Target target = new Adapter();            target.Request();            Console.ReadKey();        }    }        ///     /// 定义客户端期待的接口    ///     public class Target    {        ///         /// 使用virtual修饰以便子类可以重写        ///         public virtual void Request()        {            Console.WriteLine("这是Target类的Request方法");        }    }        ///     /// 定义需要适配的类    ///     public class Adaptee    {        public void SpecificRequest()        {            Console.WriteLine("这是Adaptee类的SpecificRequest方法");        }    }        ///     /// 定义适配器    ///     public class Adapter : Target    {        private Adaptee adaptee = new Adaptee();        ///         /// 通过重写,表面上调用Request()方法,变成了实际调用SpecificRequest()        ///         public override void Request()        {            adaptee.SpecificRequest();        }    }}

运行:

 

以上代码展示了一个简单的C#示例,展示了适配器模式的实现。代码定义了三个类:Target、Adaptee以及Adapter。Target类定义了一个Request方法,Adaptee类定义了一个SpecificRequest方法,而Adapter类继承自Target类,并通过重写Request方法,将其委托给Adaptee类的SpecificRequest方法。

在运行示例中,程序首先创建了一个Adapter对象,并调用其Request方法,这实际上调用了Adaptee类的SpecificRequest方法。运行结果会在控制台打印相应的信息。

这个示例简单地展示了适配器模式的基本思想,即通过一个适配器类来将一个接口与具体实现类结合起来,从而使原来接口不适配的类能够协同工作。

转载地址:http://gwgr.baihongyu.com/

你可能感兴趣的文章
OpenCV(1)读写图像
查看>>
OpenCV:不规则形状区域中每种颜色的像素数?
查看>>
OpenCV:概念、历史、应用场景示例、核心模块、安装配置
查看>>
OpenDaylight融合OpenStack架构分析
查看>>
openEuler Summit 2022 成功举行,开启全场景创新新时代
查看>>
openEuler 正式开放:推动计算多样化时代的到来
查看>>
OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_踩坑_安装以后系统无法联网_启动ens33网卡---国产瀚高数据库工作笔记002
查看>>
OpenFeign源码学习
查看>>
OpenFeign组件声明式服务调用
查看>>
Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)
查看>>
opengl 深度详解,多重采样时,如何在OpenGL纹理中解析深度值?
查看>>
OpenGL 的内置矩阵种种
查看>>
OpenGL中shader读取实现
查看>>
OpenGL着色器、纹理开发案例
查看>>
OpenJDK11 下的HSDB工具使用入门
查看>>
openjdk踩坑
查看>>
openjudge 1792 迷宫 解析报告
查看>>
Openlayers Draw的用法、属性、方法、事件介绍
查看>>
Openlayers layer 基础及重点内容讲解
查看>>
Openlayers map三要素(view,target,layers),及其他参数属性方法介绍
查看>>