解析:
显然,只要使用接(或抽象类)Print,实例化类PrintBanner,就可以实现打印目的,
根本不需要知道如何实现打印方法。
<1>类适配器,是用一个具体的Adapter类对Target进行匹配,结果当我们想要匹配一个类以及所有它的子类时,类适配器将不能胜任,因为Java中不允许多重继承;是得Adapter可以重新定义Adaptee的部分行为,因为Adapter是Adaptee的一个子类;仅仅引入一个对象,并不需要额外的指针以间接得到Adaptee。
<2>对象适配器,则允许一个或多个Adaptee-即Adaptee本身以及它的所有子类(如果有的话)-同时工作,Adapter也可一次给所有的Adaptee添加功能;使得重定义Adaptee的行为比较困难,这就需要生成Adaptee的子类并且是得Adapter引用这个子类而,不引用Adapter本身。
以下是Adapter Pattern模式解析:
适配器模式参与者:
Target-定义Client使用与特定领域相关的接口。
Client-与符合Target接口的对象协同,即为接口使用者。
Adaptee-定义一个已经存在的接口,这个接口需要适配。
Adapter-对Adaptee的接口与Target接口进行适配。
协作过程:Client在Adaptor实例上调用一些操作,接着适配器
调用Adaptee的操作实现这个请求。
类适配模式实现类图见图片附件:类图-Adapter_3;
对象适配模式实现类图见图片附件:类图-Adapter_4;
适用性:
<1>使用一个已经存在的类,而它的接口不符合你的需求
<2>创建一个可以复用的类,该类可以那些接口可能不一定兼容的类协同工作
<3>使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。
仅适用于对象A d a p t e r,对象适配器可以适配它的父类接口。
比较:适配器模式是填补接口间差距的模式。装饰器模式则不需要更改接口即可新增功能的模式。
分享到:
相关推荐
python库。 资源全名:pytest_testlink_adaptor-0.32-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:adaptor-0.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
ABB 机器人profinet anybus adaptor 的应用手册说明书3HAC050968anybus adaptor-en.pdf
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
DBus通讯方式中,设置适配器Adaptor和Interface的通讯方式比较麻烦,重点在于适配器类(Adaptor类)和接口类(Interface类)的生成,Qt有工具可以自动生成相应的类。※建议Qt中DBus通讯使用Interface-Connection方式...
允许 crudbrella 与猫鼬一起工作##Installation 安装 nodeJS、您选择的数据库和 crudbrella 后,通过 npm 安装此适配器 npm install adaptor-crudbrella-mongoose##Options ###Populate 要使用存储在另一个集合中的...
C64-CHARSET-Adaptor-Switch:准将C64字符ROM的适配器
core.zip,面向maven的primefaces扩展项目。primefaces扩展的核心功能
androidsvgdrawable-plugin.zip,在生成时为您的Android项目从SVG生成符合条件的、密度特定的PNG绘图。Gradle插件在生成时为您的Android项目从SVG文件生成符合条件的、密度特定的PNG绘图。
实验结果-病理学和筛选适配器适配器范围Lab Results Adapter的主要目标是隐藏复杂的旧标准,取而代之的是提供一个与当前NHSD国家标准保持一致的简单且一致的界面。 该适配器消除了GP系统处理EDIFACT和MESH消息传递的...
1.概念:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 2.为何使用:我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,...
集成适配器gpc消费者 国家集成适配器-GP Connect消费者 要求: JDK 11 配置 适配器从环境变量读取其配置。以下各节描述了用于配置适配器的环境变量。 没有默认值且未标记为可选的变量,必须定义才能运行适配器。 ...
Java适配器的几个小例子,对初学者有帮助
基于CSR是Audio-Adaptor-SDKRC3.1平台,蓝牙dongle程序
iOS设计模式之适配器模式,简单的demo 去分析对应的设计
Switching adaptor 0-30 volts / 3A
适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) 责任链模式(chainrespon) 命令模式(commond) ...
Android开发框架M-Adaptor,利用JS与Activity交互,减少一定的业务编码量