C#设计模式——适配器模式(Adapter Pattern)
一、概述
在软件开发中,常常会想要复用一个已经存在的组件,但该组件的接口却与我们的需要不相符,这时我们可以创建一个适配器,在需复用的组件的接口和我们需要的接口间进行转换,从而能够正常的使用需复用的组件。这就是适配器模式。
二、适配器模式
适配器模式将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器模式可分为类适配器和对象适配器两种,类适配器使用多重继承对两个接口进行匹配,对象适配器则依赖于对象的组合。
类适配器模式的结构图如下:
对象适配器模式的结构图如下:
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)相关推荐
- Java设计模式—适配器模式(adapter pattern)
现在的手机很多都取消了3.5mm的耳机接口,只留下了一个type-c接口.但是我现在只有一个3.5mm圆孔接口的耳机,我不得不通过一个转接线使得3.5mm的耳机变成type-c接口. //Type-C ...
- 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)
[索引页] [源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本 ...
- 【设计模式】适配器模式 Adapter Pattern
适配器模式在软件开发界使用及其广泛,在工业界,现实中也是屡见不鲜.比如手机充电器,笔记本充电器,广播接收器,电视接收器等等.都是适配器. 适配器主要作用是让本来不兼容的两个事物兼容和谐的一起工作.比如 ...
- 设计模式(七): 通过转接头来观察适配器模式(Adapter Pattern)
在前面一篇博客中介绍了"命令模式"(Command Pattern),今天博客的主题是"适配器模式"(Adapter Pattern).适配器模式用处还是比较多 ...
- 极速理解设计模式系列:6.适配器模式(Adapter Pattern)
四个角色:目标抽象类角色(Target).目标对象角色(Adapter).源对象角色(Adaptee).客户端角色(Client) 目标抽象类角色(Target):定义需要实现的目标接口 目标对象角色 ...
- 适配器模式 Adapter Pattern
适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类,该类负责加入独立的 ...
- php本地服务手机适配器,php适配器模式(adapter pattern)
下午陪家人和小孩,晚上练起来. /* The adapter pattern allows the interface of an existing class to be used from ano ...
- 二十三种设计模式[6] - 适配器模式(Adapter Pattern)
前言 适配器,属于类结构型模式.<设计模式 - 可复用的面向对象软件>一书中将之描述为" 将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可 ...
- 设计模式之四:适配器模式(Adapter Pattern)
在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的.如果能既能利用现有对象的良好实现,同时又能满足新的应 ...
最新文章
- go-kit微服务学习-官方示例stringsvc学习
- getrealdays oracle_oracle 日期函数介绍
- java jdbc连接db2数据库_Java连接db2数据库(常用数据库连接五)
- Windows Embedded CE 6.0开发初体验(七)编译和调试平台
- java伪协议_通过伪协议解决父页面与iframe页面通信的问题
- react-native ListView 封装 实现 下拉刷新/上拉加载更多
- 学习dubbo遇到的问题1
- 【java】我工作三年了,该懂并发了!
- PHP中获取星期的几种方法
- 计算机视觉CV中特征点提取SURF算法的学习笔记
- [导入]Nutch 简介 [官方]
- 第四季 word vba
- python魔术方法大全_python中魔术方法和属性汇总
- 谷歌浏览器一直显示弹框登陆代理解决方法
- 神经网络为什么叫神经网络【一文看懂】
- Python 中国象棋源码 V1
- 特征工程(1)特征工程的简介
- JAVA电机控制程序_步进电机控制时序
- 猫鸡米问题java_人猫鸡米渡河问题的数学模型.doc
- python股票成交量柱状图_成交量柱状图怎样判断股票行情