一、概述
在软件开发中,常常会想要复用一个已经存在的组件,但该组件的接口却与我们的需要不相符,这时我们可以创建一个适配器,在需复用的组件的接口和我们需要的接口间进行转换,从而能够正常的使用需复用的组件。这就是适配器模式。
二、适配器模式
适配器模式将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式可分为类适配器和对象适配器两种,类适配器使用多重继承对两个接口进行匹配,对象适配器则依赖于对象的组合。
类适配器模式的结构图如下:

对象适配器模式的结构图如下:

Target定义了客户需要使用的接口。
Adaptee定义了已经存在的那个接口,该接口需要通过适配器转换成Target接口以便Client调用。
Adapter对Adaptee接口和Target接口进行适配。
三、示例
我们来看一下适配器模式的应用场景。假定.NET类库中没有实现Stack,而我们在应用中需要用到Stack,这时就可以通过适配器模式将List的接口转换为Stack需要的接口。
首先定义Stack接口

1     interface IStack<T>
2     {
3         void Push(T item);
4         T Pop();
5     }

接口实现Adapter

 1     public class MyStack<T> : IStack<T>2     {3         private List<T> _list = new List<T>();4 5         public void Push(T item)6         {7             _list.Add(item);8         }9
10         public T Pop()
11         {
12             T item = _list[_list.Count - 1];
13             _list.RemoveAt(_list.Count - 1);
14             return item;
15         }
16
17         public void PrintAll()
18         {
19             Console.WriteLine("Begin Print Stack Item");
20             foreach (T item in _list)
21             {
22                 Console.WriteLine(item.ToString());
23             }
24             Console.WriteLine("End Print Stack Item");
25         }
26     }

C#设计模式——适配器模式(Adapter Pattern)相关推荐

  1. Java设计模式—适配器模式(adapter pattern)

    现在的手机很多都取消了3.5mm的耳机接口,只留下了一个type-c接口.但是我现在只有一个3.5mm圆孔接口的耳机,我不得不通过一个转接线使得3.5mm的耳机变成type-c接口. //Type-C ...

  2. 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本 ...

  3. 【设计模式】适配器模式 Adapter Pattern

    适配器模式在软件开发界使用及其广泛,在工业界,现实中也是屡见不鲜.比如手机充电器,笔记本充电器,广播接收器,电视接收器等等.都是适配器. 适配器主要作用是让本来不兼容的两个事物兼容和谐的一起工作.比如 ...

  4. 设计模式(七): 通过转接头来观察适配器模式(Adapter Pattern)

    在前面一篇博客中介绍了"命令模式"(Command Pattern),今天博客的主题是"适配器模式"(Adapter Pattern).适配器模式用处还是比较多 ...

  5. 极速理解设计模式系列:6.适配器模式(Adapter Pattern)

    四个角色:目标抽象类角色(Target).目标对象角色(Adapter).源对象角色(Adaptee).客户端角色(Client) 目标抽象类角色(Target):定义需要实现的目标接口 目标对象角色 ...

  6. 适配器模式 Adapter Pattern

    适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类,该类负责加入独立的 ...

  7. php本地服务手机适配器,php适配器模式(adapter pattern)

    下午陪家人和小孩,晚上练起来. /* The adapter pattern allows the interface of an existing class to be used from ano ...

  8. 二十三种设计模式[6] - 适配器模式(Adapter Pattern)

    前言 适配器,属于类结构型模式.<设计模式 - 可复用的面向对象软件>一书中将之描述为" 将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可 ...

  9. 设计模式之四:适配器模式(Adapter Pattern)

    在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的.如果能既能利用现有对象的良好实现,同时又能满足新的应 ...

最新文章

  1. go-kit微服务学习-官方示例stringsvc学习
  2. getrealdays oracle_oracle 日期函数介绍
  3. java jdbc连接db2数据库_Java连接db2数据库(常用数据库连接五)
  4. Windows Embedded CE 6.0开发初体验(七)编译和调试平台
  5. java伪协议_通过伪协议解决父页面与iframe页面通信的问题
  6. react-native ListView 封装 实现 下拉刷新/上拉加载更多
  7. 学习dubbo遇到的问题1
  8. 【java】我工作三年了,该懂并发了!
  9. PHP中获取星期的几种方法
  10. 计算机视觉CV中特征点提取SURF算法的学习笔记
  11. [导入]Nutch 简介 [官方]
  12. 第四季 word vba
  13. python魔术方法大全_python中魔术方法和属性汇总
  14. 谷歌浏览器一直显示弹框登陆代理解决方法
  15. 神经网络为什么叫神经网络【一文看懂】
  16. Python 中国象棋源码 V1
  17. 特征工程(1)特征工程的简介
  18. JAVA电机控制程序_步进电机控制时序
  19. 猫鸡米问题java_人猫鸡米渡河问题的数学模型.doc
  20. python股票成交量柱状图_成交量柱状图怎样判断股票行情

热门文章

  1. 【Robot学院】一文读懂世界智能制造大趋势!
  2. 新科技快速指南系列之“量子计算”:历史、现在与未来
  3. 智能机器人与系统高精尖创新中心2018年度开放基金项目申报通知
  4. OpenAI解析「AI算力」:3个半月翻一倍,6年超过30万倍
  5. 阿里、腾讯基本薪资曝光,资深算法工程师24万美元,高级研究员26万美元
  6. 49 岁的红杉资本遭遇黑客攻击
  7. [学习笔记]Segment Tree Beats!九老师线段树
  8. 【年度总结】我的2018年
  9. SpreadJS 类Excel表格控件 - V12 新特性详解
  10. 用程序消除一道概率题的二义性