设计思想与模式之二适配器模式

1.什么是适配器模式?

适配器模式是一种过渡模式,用于沟通两个不兼容的事物,实现信息交换。

2.适配器模式的目的

使一个对象能够以一种相对简单的方式处理多个不同类型的对象,即一个对象兼容多个不同类型的对象。例如,电脑接收外部硬件的插口唯一确定,不同尺寸的内存卡先插到读卡器上,再由读卡器插到唯一确定的插口上。读卡器就充当了适配器的角色,不同的内存卡拥有不同的读卡器,由于不同的读卡器面对的是相同的插口,因此不同的读卡器拥有共同的特性,在程序中就表现为适配器实现共同的接口,体现了接口的可插拔特性。

3.接口的可插拔特性:

接口实现了某种规范,接口的实现类对规范做出了更加具体的实现,任何一个实现类对于该规范都是有效的,所以当需要实现规范时,可以使用任何一个实现类。

4.适配器是一个封装了处理对象的装饰者,通过调用适配器的方法间接执行处理对象的方法。

5.适配器的确定

一个适配器对应一类处理器,在适配器内部定义判断接收对象是否该类对象的方法,遍历适配器,就可以获得对应的适配器。

6.适配器模式的结构

⑴中央调度器:处理器通过适配器沟通的对象。
⑵适配器接口:为了保证多个适配器能够与中央调度器沟通,制定的与中央调度器交互的规范。
⑶适配器实现类:实现了适配器接口,增加了判断对象是否是指定接收对象的方法(instanceof)。
⑷处理器接口:为一类处理器定义了规范,对应于一种适配器实现类。
⑸处理器实现类:实现了处理器接口,是中央调度器实际处理的对象。

⑹综上可知,适配器模式由1个中央调度器、两个接口、两个实现类构成。

7.什么情况下使用适配器模式?

适配器模式的作用是实现一个相对固定的对象与多变的对象之间信息的交换,当一个对象需要处理多个不同的类的对象时,采用适配器模式。

时间: 2024-10-24 04:24:43

设计思想与模式之二适配器模式的相关文章

设计思想与模式之四静态代理模式

一 概述 1.什么是代理模式? 为了隐藏与保护目标对象,为其他对象提供一个代理以控制对该目标对象的访问. 2.什么是静态代理模式? 代理模式有两种: 静态代理:代理对象固定. 动态代理:代理对象不固定. 二 静态代理模式 1.基本结构: 父类:可以是一个接口.抽象类.一般类,一般是接口,保证可以按照操作目标对象的方式操作代理对象. 目标类:实现了父类. 代理类:不仅拥有与目标相同的父类,而且包含目标类对象. 2.代理类包含目标对象的实现 代理模式的作用是隐藏与保护目标对象,因此目标对象不能由用户

拦截器的设计思想——代理模式

代理模式:静态代理和动态代理 1.代理类和被代理类必须实现同一个借口 2.代理类和别代理类有一种关联关系 静态代理: 例如实现一个日志: //定义一个接口 public interface UserDao{ public void delete(); } //定义一个实现类 public class UserDaoImpl implements UserDao{ public void delete(){ System.out.pritln("成功删除"); } } //定义一个代理类

设计思想与模式之五观察者模式

一 概述 1.什么是观察者模式? 将一个对象视作被观察者,当它发出某种行为或者发生某种变化时,通知所有依赖它的对象(观察者),这种设计模式叫做观察者设计模式. 2.观察者设计模式的用途 用于处理一对多的依赖关系,当一个对象的状态发生改变时,通知所有依赖于它的对象,这些对象收到通知以后采取相应的处理措施. 二 观察者模式构成 被观察者接口:包含添加观察者.删除观察者.通知观察者等操作. 被观察者:实现了被观察者接口,一个具体的被观察者. 观察者接口:处理被观察者的通知. 观察者:实现了观察者接口,

设计思想与模式之一模块化

1.什么是模块化 将实现不同功能的代码分别存放到不同的文件.类.方法中,每一个文件.类.方法都是一个实现单一功能的模块. 2.为什么使用模块化 模块化的文件.类.方法功能单一,可以相对独立存在,不仅降低了对其他对象的依赖,而且层次清晰,便于维护. 3.模块化的具体实现方法 通过增加模块数目减小单个文件.类.方法的体积.

kafka入门二:Kafka的设计思想、理念

本节主要从整体角度介绍Kafka的设计思想,其中的每个理念都可以深入研究,以后我可能会发专题文章做深入介绍,在这里只做较概括的描述以便大家更好的理解Kafka的独特之处.本节主要涉及到如下主要内容: Kafka设计基本思想 Kafka中的数据压缩 Kafka消息转运过程中的可靠性 Kafka集群镜像复制 Kafka 备份机制 一.kafka由来 由于对JMS日常管理的过度开支和传统JMS可扩展性方面的局限,LinkedIn(www.linkedin.com)开发了Kafka以满足他们对实时数据流

Java(二)--OOP设计思想

(一)java中的oop思想的由来 机器语言-直接有计算机的指令组成,指令.数据.地址都已"0"和"1"组成:可以被计算机直接执行. 汇编语言-用容易理解和记忆的符号表示指令.数据以及寄存器等,抽象层次低,程序员需要考虑大量的机器细节. 高级语言-接军人类的自然语言,提出了结构化数据和语句,为面向数据和过程抽象的. 面向对象-抽象成了现实的事物. (二)OOP的设计思想 从上图中我们可以看到:OOP的设计思想是:有哪些类?这些类有哪些方法?这些类有哪些属性?类和类之

软件工程课堂作业(二)——升级版随机产生四则运算题目设计思想

升级版随机产生四则运算题目要求: 1.避免题目重复: 2.可定制题目(题目数量.打印方式): 3.可以选择:是否有乘除法.是否有括号.定制数值范围.加减有无负数.除法有无余数.是否支持分数.是否支持小数.定制每行间隔等. ********************************************************************************************************* 设计思想: 1.避免重复:输出时,确定了运算符号,两个运算数都相同

框架源码系列一:设计模式(设计思想、设计原则、各种设计模式介绍、设计模式总结)

要分析常用框架spring.mybatis.springboot.springcloud等的源码,首先要了解各种设计模式,因为框架里面应用了各种设计模式 一.设计思想 学习设计模式最重要的是掌握设计思想和设计原则,理解了设计思想和设计原则并运用到平时的编码中是最重要的!!! 1. 我们先来看下面的问题: 天天加班编程,编程到底都做的是什么? 撸代码,加班撸代码,写接口.写类.写方法 用设计模式或做设计的作用是什么? 指导.规定该如何撸代码,如何来写接口.写类.写方法 为什么要做设计.用设计模式?

中文翻译为"具象状态传输"的RESTful的架构风格和设计思想

本文标签:  具象状态传输 RESTful架构 RESTful理解 REST   服务器 REST 定义了一组体系架构原则,您可以根据这些,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态.所以在事实上,REST 对 Web的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计.在多年以后的今天,REST的主要框架已经开始雨后春笋般的出现. REST(Representational State Transfer ),有中文翻译为"具象状态传