设计模式Adapter模式的五分钟
五分钟一个设计模式。来形容叙述的设计模式的最简单方法。看到许多其他设计模式,请点击五分钟一个设计模式系列
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();
}
}
程序运行结果:
原来的方法运行了
设计模式Adapter模式的五分钟的更多相关文章
- java设计模式—Adapter模式
1.核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作. 该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adap ...
- 2.设计模式---Adapter模式
Adapter模式也就是适配器模式,最常见的就是这个:码农必备-------------->笔记本电源适配器: 那么这玩意到底是干嘛的?? 手工画图一张: 220V--------------- ...
- 一天一个设计模式——Adapter适配器模式(Wrapper模式)
一.模式说明 在现实生活中,当需要将两种设备连接起来,但是两个设备的接口规范又不一致(比如电脑上只有Type-C接口,但是你的显示器是HDMI接口),这时候就需要一个适配器,适配器一端连接电脑,一端连 ...
- 五分钟搞懂POM设计模式
转载请注明出处️ 作者:IT小学生蔡坨坨 原文链接:五分钟搞懂POM设计模式 大家好,我是IT小学生蔡坨坨. 今天,我们来聊聊Web UI自动化测试中的POM设计模式. 为什么要用POM设计模式 前期 ...
- 设计模式--适配器(Adapter)模式
今天学习另一个设计模式,适配器(Adapter)模式,这是一个共同方向,但有特殊要求,就应用到此设计模式.写到这里,想起很久以前,有写过一篇<ASP.NET的适配器设计模式(Adapter)&g ...
- 设计模式之Adapter模式
说起Adapter,STL里的stack和queue都是adapter,底层是deque,隐藏了deque的一些接口,使得其可以达到FIFO是queue,LIFO是stack. The STL sta ...
- 策略模式 Strategy 政策Policy 行为型 设计模式(二十五)
策略模式 Strategy 与策略相关的常见词汇有:营销策略.折扣策略.教学策略.记忆策略.学习策略.... “策略”意味着分情况讨论,而不是一概而论 面对不同年龄段的人,面对不同的商品,必然将会 ...
- Java设计模式(9)适配器模式(Adapter模式)
适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用 ...
- Java 设计模式系列(十五)迭代器模式(Iterator)
Java 设计模式系列(十五)迭代器模式(Iterator) 迭代器模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(interna ...
随机推荐
- Qrcode生成二维码支持中文,带图片,带文字
1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library2.打开源码时, 部分类 ...
- ASP.NET Web Service应用发布到IIs怎么做
首先把你写的webservice Publish 到 一个文件夹 D:\MyWebService 下,在IIS下的website里面new一个虚拟目录,别名(Alias)随便输一个(这个别名是用于别的 ...
- Mit 分布式系统导论,Distributed Systems ,lab1 -lab6 总结,实验一到实验六总结
终于把Mit的分布式系统导论课的实验1-6写完了 做得有些痛苦,但是收获也很大 http://pdos.csail.mit.edu/6.824-2012/labs/index.html 把实验1-6用 ...
- tab功能菜单——使用tab之间不同的交换机div
需求:在web实现类型的接口tab标签效应 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fo ...
- 用bytecode来看try-catch-finally和return
之前看过一篇关于return和finally运行顺序的文章.仅在Java的语言层面做了分析.事实上我倒认为直接看bytecode可能来的更清晰一点. 近期一直在看Java虚拟机规范.发现直接分析byt ...
- POJ 3181 Dollar Dayz 简单DP
这DP虽然简单 但是思考一下还是挺好的 题意是 1,2,3,4....k 用加法凑成N 每个数可取不限个数 令dp[i][j] 表示前i种数凑成j的方案数 然后dp[i][j] = dp[i - 1] ...
- 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁
上一篇聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁 讲了可重入读写锁的基本情况和基本的方法,显示了怎样 ...
- 修改linux系统时间、rtc时间以及时间同步
修改linux的系统时间用date -s [MMDDhhmm[[CC]YY][.ss]] 但是系统重启就会从新和硬件时钟同步. 要想永久修改系统时间,就需要如下命令:hwclock hwclock - ...
- ByteBuffer的allocate和allocateDirect
在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类.ByteBuffer提供了两种静态实例方式: public stati ...
- 【python下使用OpenCV实现计算机视觉读书笔记4】保存摄像头视频
读取摄像头内容,然后保存一段十秒钟的视频. import cv2 cameraCapture = cv2.VideoCapture(0) fps = 30 # an assumption size = ...