前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#设计模式——(结构型-适配器设计模式)

C#设计模式——(结构型-适配器设计模式)

原创
作者头像
用户10053120
发布2022-10-10 11:54:52
2640
发布2022-10-10 11:54:52
举报
文章被收录于专栏:C# 设计原则

一、应用场景

在软件系统中,经常需要将一些现成的对象放到新的环境中进行使用,但是新的环境要求的接口,是这些现存对象所不能满足的,如何能利用现有的对象,又能满足新的引用环境所需要的接口。

比如不同国家的插座和插头不同,要用转接头。

现有的对象:国内买的插头。

新的环境:国外的插座。

适配器:转接头。

二、适配器模式的定义

将一个类的接口,转换成客户希望的另外一个接口。

适配器模式使得原本又有接口不兼容而不能一起工作的哪些类可以一起工作。

适配器模式包括三个对象

  • Adaptee 初始角色,实现了我们想要的功能但是接口不匹配;
  • Target 目标角色 定义了用户希望的接口;
  • Adapter 适配器角色,实现了目标接口,实现的方法是:内部包含了一个Adaptee对象,通过调用Adaptee对象原有的方法实现功能。
代码语言:javascript
复制
        //安卓充电线
        public class AndroidChargeAdaptee
        {
            public void AndroidCharge()
            {
                Console.WriteLine("安卓充电线充电");
            }
        }
        //苹果手机的充电接口
        public interface IPhoneCharge
        {
            void PhoneCharge();
        }
        //转接头
        public class PhoneChargeAdapter : IPhoneCharge
        {
            //在Adapter中封装了一个Adaptee对象,这个对象才是实现功能的对象
            private AndroidChargeAdaptee android = new AndroidChargeAdaptee();
            public void PhoneCharge()
            {
                android.AndroidCharge();
            }
        }
代码语言:javascript
复制
IPhoneCharge phoneCharge=new PhoneChargeAdapter();
 phoneCharge.PhoneCharge();

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档