设计模式Adapter模式的五分钟
2015-12-08 19:08
169 查看
五分钟一个设计模式。来形容叙述的设计模式的最简单方法。看到许多其他设计模式,请点击五分钟一个设计模式系列
http://blog.csdn.net/daguanjia11/article/category/3259443
适配器模式使得原本因为接口不兼容而不能一起工作的那些类能够一起工作。
适配器模式的主要功能是转换接口,目的是复用已有功能。而不是实现新接口,适用于功能实现了但接口不兼容的场合。
适配器组合了原有对象,而且提供与一个client兼容的接口,实际的工作由原有接口完毕。
Target:client须要的接口,与特定领域相关
Adaptee:被适配对象
Adapter:适配器
来上代码:
以下看client怎样使用
程序运行结果:
原来的方法运行了
http://blog.csdn.net/daguanjia11/article/category/3259443
认识适配器模式
适配器模式的定义是:将一个类的接口转换成client希望的另外一个接口。适配器模式使得原本因为接口不兼容而不能一起工作的那些类能够一起工作。
适配器模式的主要功能是转换接口,目的是复用已有功能。而不是实现新接口,适用于功能实现了但接口不兼容的场合。
适配器组合了原有对象,而且提供与一个client兼容的接口,实际的工作由原有接口完毕。
演示样例代码
以下的演示样例代码中主要包括以下部分:Target:client须要的接口,与特定领域相关
Adaptee:被适配对象
Adapter:适配器
来上代码:
/// <summary> /// client须要的接口,与特定领域相关 /// </summary> public interface Target { /// <summary> /// client请求处理的方法 /// </summary> void Request(); }
/// <summary> /// 被适配对象 /// </summary> public class Adaptee { /// <summary> /// 原有的已经实现了的方法,但接口发生了变化 /// </summary> public void OldRequest() { Console.WriteLine("原来的方法运行了"); } }
/// <summary> /// 适配器 /// </summary> public class Adapter : Target { /// <summary> /// 组合被适配的对象 /// </summary> private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void Request() { this.adaptee.OldRequest(); } }
以下看client怎样使用
class Program { static void Main(string[] args) { //创建被适配对象 Adaptee adaptee = new Adaptee(); //创建client须要调用的接口对象 Target target = new Adapter(adaptee); //请求处理 target.Request(); } }
程序运行结果:
原来的方法运行了
相关文章推荐
- 《程序员的自我修养》--读书笔记
- java基础第一天——入门
- 类及类的成员函数的定义
- 进程启动与动态加载库信息
- iOS中英文混排,获取字符串长度(中文字符数)
- for循环与while循环
- 【springmvc+mybatis项目实战】杰信商贸-33.出口报运修改+报运货物批量展现-批量修改控件2
- web自动化(7)----模拟事件
- 基于Wolf32F031 自由评估板的LCD display(SPI接口)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- 【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1
- ampq第三章
- HDFS(2)
- handler
- 浅谈AngularJS的$parse服务 这篇可以让你看明白
- 【springmvc+mybatis项目实战】杰信商贸-35.业务出口报运WebService2
- 第15周项目3 - B-树的基本操作
- [LeetCode]100. Remove Duplicates from Sorted Array II排序数组去重
- EventBus 注册错误no public methods with the @Subscribe annotation
- [LeetCode]100. Remove Duplicates from Sorted Array II排序数组去重
- 关于傅里叶分析与香农采样定理