这两天,听到有人讨论适配器模式,讨论的是对象适配器和类适配器。他们对着Adaptee和Adapter大声讨论着,本来想发表自己的想法,结果被他们大声盖住,只能回家写出自己的想法,并且从他们的讨论中更加深入的理解了适配器是什么。
client和Adaptee之前是什么关系?多对多。一个写好的client处理程序,在后续可能会有需要新的处理对象,而这些处理对象不符合client的接口需要,那么就需要对些Adaptee进行适配,适配成满足client需要的Adapter。这是一个client对多个Adaptee的情况。也有多个client对一Adaptee的情况,因为多个client都可能需要去执行Adaptee,不同的client需要不同的接口对象,那么这个Adaptee就会被适配成不同的接口,这是多个client对一个Adaptee的情况。
首先,适配器是为client服务的,是先有client,再有Adapter,或者说,是先从client的角度看待,发现Adaptee不能满足接口的统一性,需要Adapter。而Adaptee可能在任何Adapter之前的任何时候出现都可以。client是我们的代码,而且是已经存在的代码,里面的实现方式是:
class client{
Adapter adapter;
void method(){
adapter.methodAdapter();
}
}
请注意,这个client里面持有的Adapter是指一个接口或者抽象,并不是说就是适配器。因为我们有client的时候,还不需要适配器。
在client接口一定的情况下,希望client也能去执行adaptee的methodAdaptee方法,但是client只认识adapter的methodAdapter方法,怎么办呢?这个时候,适配器隆重出场了。
class 适配器 implements Adapter{
Adaptee adaptee;
void methodAdapter(){
adaptee.methodAdaptee();
}
}
通过这个转换,我们就可以把Adaptee包裹成Adapter,然后送给client。client发现这是个Adapter,具有methodAdapter方法,从而去执行。但是由于内部实际包装了Adaptee的方法,从而达成了执行Adaptee的方法的目标。
分享到:
相关推荐
首先,手册开篇即强调了在安装和操作NIBA-01 InterBus-S适配器模块时必须遵守的安全指导。在开始任何工作之前,用户必须仔细研读本章节的内容。手册中明确区分了两类安全指示:警告(Warnings)和注意事项(Notes)...
开篇.pdf 继承、封装、多态.pdf 备忘录模式.pdf 工厂模式.pdf 模板模式.pdf 中介者模式.pdf 策略模式.pdf 观察者模式.pdf 桥接模式.pdf 装饰模式.pdf 抽象工厂模式.pdf 适配器模式.pdf 状态模式.pdf 代理...
抽象工厂模式.pdf 继承、封装、多态.pdf 适配器模式.pdf 状态模式.pdf 代理模式.pdf 建造者模式.pdf 外观模式.pdf 组合模式.pdf 单件模式.pdf 解释器模式.pdf 享元模式.pdf 迭代器模式.pdf 开篇.pdf 原型模式.pdf ...
首先,文档开篇介绍了vSphere存储的基础知识,包括传统存储虚拟化模型和软件定义的存储模型,并引入了vSphere Storage API,这是一个能够让存储厂商创建与vSphere紧密集成的存储解决方案的工具集。 接着,文档深入...
首先,文档开篇介绍了嵌入式Web服务器与PLC实时数据通信的实施方法,指出嵌入式Web服务器核心芯片为基于ARM920T内核的S3C2440微处理器芯片,并使用Linux作为操作系统。这里体现了嵌入式系统技术在工业控制领域的应用...
本书开篇即强调设计之美在于其无限的可能性和创造性。设计没有绝对的标准,正如莎士比亚笔下的“哈姆雷特”,不同的人会有不同的解读。设计同样如此,满足客户需求的设计就是最好的设计。 #### 计划的设计与演进的...
文档中出现了CGA(Color Graphics Adapter,彩色图形适配器)、EGA(Enhanced Graphics Adapter,增强型图形适配器)和VGA(Video Graphics Array,视频图形阵列),这些都是不同发展阶段的显示适配器,随着技术的...
开篇作者提到“设计没有标准”,这句话强调了设计的主观性和多样性。在软件设计领域,“最好的设计方案”往往是因人而异的,因为不同的人对于“好”的定义不同。作者认为,满足客户需求的设计才是最好的。为了达成这...
本实验是树莓派C语言系列实验的开篇之作,详细介绍了树莓派硬件资源、安装和配置的全过程,为后续实现传感器功能的C语言编程奠定了基础。通过对树莓派的安装、配置和使用,我们能够深入了解其硬件特性和软件应用,为...
用户手册的开篇即强调了安全使用的重要性和在使用产品前需要阅读理解的安全手册和指导。特别提醒用户,在日本国内使用ThinkPad内置无线适配器时要特别注意,因为可能涉及到特定的法规要求。用户还可以在Lenovo的官方...
手册开篇介绍了Zend Framework 2的基本概念和安装步骤,说明了如何设置开发环境以及怎样开始一个简单的项目。手册中提及了一些基础的假设,这暗示着读者应具备一定的PHP基础知识和开发经验。 在“Getting Started”...
"1、开篇.avi"很可能是介绍整个系列的开篇,讲解了为什么需要这两种设计模式以及它们在Android开发中的重要性。 学习和熟练运用MVC和MVP设计模式对于提升Android开发能力至关重要,它们能帮助开发者写出更清晰、更...
在《ThinkPad T430维护手册》中,安全信息占据着开篇的重要位置,强调了在进行任何硬件维护操作前必须了解并遵循的安全准则。首先,手册概述了一般安全原则,包括但不限于正确处理电子设备、避免静电放电伤害以及...
手册开篇即表达了对用户的感谢,强调了COWON致力于提供顶级用户体验的决心。手册明确指出,产品相关的版权信息归COWON SYSTEM独家所有,未经许可不得复制传播。同时,手册也提及了遵守音像、视频、游戏等领域的法律...
例如,当电脑无法开机时,可能是电源连接问题、电源适配器故障或主板上电源控制电路的损坏;当电脑频繁重启时,则可能涉及到散热不良、过热保护机制的触发或系统文件损坏等问题。针对内存故障,手册会指导用户如何...
在《北京动力节点-Reyco郭-SpringMVC4.pdf》中,会涵盖SpringMVC的模型-视图-控制器架构、处理器映射器与适配器、视图解析、异常处理等知识点,帮助开发者熟练运用SpringMVC构建高效、可维护的Web应用。 再者,...
开篇即为您介绍安全信息,这是确保ThinkPad X240能够得到恰当和安全使用的前提。您需要了解并遵守在使用笔记本电脑时的基本安全准则,避免损害设备或个人安全的行为。例如,不要阻塞通风口,避免在极端温度或湿度过...
综上所述,快速充电技术的发展已经进入了一个新的阶段,瑜亮之争的开篇预示着行业竞争的激烈程度。然而,正是这种竞争推动了快速充电技术的飞速进步,为消费者带来了更多的便利和选择。我们有理由相信,随着科技的...