作用:适配器(也叫Wrapper-包装器)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是将“既有内容”转换成“需要结果”,是代码重用的利器之一,Java I/O中应用了这种模式(如ByteArrayInputStream、ByteArrayOutputStream)。形象地:就如同笔记本电脑的电源适配器,一端是220交流电(既有内容),另一端12v直流电(需要结果)。
分类:Adaptor模式有两种,类适配器(继承)、对象适配器(委托) 。两种模式各有优劣,具体在代码解析中说明。
示例-类适配器(继承):
|
电源
|
程序示例
|
既有内容
|
交流电220V
|
Banner类(showWithParen,shoWithAster)
|
转换装置
|
适配器
|
PrintBanner类
|
需要的结果
|
直流电12V
|
Print接口 (PrintWeak,PrintStrong)
|
类图查看图片附件:类图-Adapter_1
//------------------------------------------Banner类---------------------------------------------------------------
package adapter;
public class Banner{
private String strings;
public Banner(String strings){
this.strings = strings;
}
public void showWithParen(){
System.out.println("("+strings+")");
}
public void showWithAster(){
System.out.println("*"+strings+"*");
}
}
//------------------------------------------PrintBanner类---------------------------------------------------------------
package adapter;
public class PrintBanner extends Banner implements Print{
public PrintBanner(String strings){
super(strings);//父类构造函数来初始化~~
}
public void printWeak(){
showWithParen();
}
public void printStrong(){
showWithAster();
}
}
//------------------------------------------Print接口---------------------------------------------------------------
package adapter;
public interface Print{
public abstract void printWeak();
public abstract void printStrong();
}
//------------------------------------------测试类---------------------------------------------------------------
public class Main{
public static void main(String[] args){
Print p = new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
示例-对象适配器(委托):
类图查看图片附件:类图-Adapter_2
//------------------------------------------Banner类---------------------------------------------------------------
同上
//------------------------------------------PrintBanner类---------------------------------------------------------------
package adapter;
public class PrintBanner extends Print{
private Banner banner;
public PrintBanner(String strings){
this.banner = new Banner(strings);
}
public void printWeak(){
banner.showWithParen();
}
public void printStrong(){
banner.showWithAster();
}
}
//------------------------------------------Print类---------------------------------------------------------------
package adapter;
public interface Print{
public abstract class Print{
public abstract void printWeak();
public abstract void printStrong();
}
//------------------------------------------测试类---------------------------------------------------------------
同上
- 描述: 类图-Adapter_1
- 大小: 21.9 KB
- 描述: 类图-Adapter_2
- 大小: 25.4 KB
- 描述: 类图-Adapter_3
- 大小: 22.9 KB
- 描述: 类图-Adapter_4
- 大小: 22.4 KB
分享到:
相关推荐
适配器模式是一种结构型设计模式,其主要目的是解决接口不兼容问题,使得原本由于接口差异无法协同工作的类能够一起工作。适配器模式通过创建一个新的类(适配器),将旧的接口转换成目标接口,从而实现了系统的解耦...
在Java中,适配器模式经常被用来解决类与类之间接口不匹配的问题,使得原本无法一起工作的类能够协同工作。本教程将通过几个小例子深入讲解Java中的适配器模式。 首先,理解适配器模式的基本概念。适配器模式通过...
1. 数据源适配:当你需要在一个视图控制器中展示来自不同数据源的数据时,可以使用适配器模式。例如,一个UITableView需要显示网络API返回的数据,但这些数据可能需要转换成UITableViewDataSource协议所要求的格式。...
1.概念:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 2.为何使用:我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,...
描述“Switching adaptor 0-30 volts / 3A”进一步确认了这个适配器的规格,它是一个开关模式电源(Switching Mode Power Supply,简称SMPS),能够提供0到30伏的可调电压,并且最大电流能力为3安培。开关模式电源...
"Ethernet Adaptor"是网卡的一种类型,指的是遵循以太网标准的网络适配器。以太网是目前最普遍采用的局域网(LAN)技术,其基础是IEEE 802.3标准。本文将深入探讨以太网适配器的工作原理、驱动程序的作用以及如何...
适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) 责任链模式(chainrespon) 命令模式(commond) ...
"外接网卡的驱动"指的是专门为这种通过USB接口连接的外部网络适配器设计的驱动程序。驱动程序是操作系统与硬件设备之间的桥梁,它负责解释并执行来自操作系统的指令,使得硬件能够正常工作。对于USB网卡来说,驱动...
2. **10/100M Ethernet**:10/100M指的是适配器支持两种速度模式,10Mbps和100Mbps,是标准以太网速度。它适用于家庭、办公室等场景,能提供稳定且足够的网络速度进行日常上网、文件传输等活动。 3. **有线网卡驱动...
适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) 装饰器模式(decorate) 外观模式(facecade) 享元模式(flyweight) 代理模式(proxy) 行为型模式(behaviour) 责任链模式(chainrespon) 命令模式(commond) ...
1. **适配器模式(Adaptor Pattern)**:这种模式用于将两个不兼容的接口进行适配,使得原本不能一起工作的类可以协同工作。在`adaptor`目录下的源码中,你可以看到如何通过创建一个适配器类,将旧的或第三方库的...
【Redis适配器测试的家庭作业】是针对使用...总之,完成这个“homework for redis adaptor test”不仅要求你熟悉Redis的基础知识,还需要你具备良好的编程能力和问题解决技巧,以实现高效、稳定、安全的Redis适配器。
- **Vth=-1V**:阈值电压为-1V,即开启电压。 ### 标签分析:“mosfet vbsemi” - **mosfet**:表明产品属于MOSFET类别。 - **vbsemi**:可能是制造商的品牌名或者商标,即VBsemi公司。 ### 部分内容详解 #### ...
1.设计模式更抽象,J2EE 是具体的产品代码,我们可以接触到,而设计模式在对每个应用时才会产生具体代码。 2.设计模式是比 J2EE 等框架软件更小的体系结构,J2EE 中许多具体程序都是应用设计模式来完成的,当你深入...
- 适配器是一种设计模式,用于改变现有容器的行为。 - 比如`reverse_iterator`用于逆序遍历容器。 - **内存分配器** - 分配器用于管理内存资源。 - C++11引入了自定义内存分配器的概念,允许用户控制内存的分配...
1. 访问制造商官方网站:大多数硬件设备的驱动程序都可以在其制造商的官方网站上找到。查找对应适配器的型号,然后进入“支持”或“下载”区域。 2. 选择操作系统:根据你的计算机操作系统(Windows、Mac OS、Linux...
- 墙壁适配器(Wall Adaptor) - 充电底座和支架(Charging Docks and Cradles) 5. 引脚配置和标记: LY7607的引脚配置如下: - VBUS(5V):用于USB充电的5V电源。 - VCC:电源输入,为IC提供电流。 - D+:USB正...
1. **蓝牙协议栈**:CSR的驱动程序可能基于Bluetooth 4.0规范,这是蓝牙技术联盟(SIG)推出的一种低功耗、高速度的无线通信标准。它包括了基础射频层、链路管理器、逻辑链路控制和适配器访问协议(L2CAP)、服务...
- **Threshold Voltage (VGS(th))**: -1V — 在规定条件下,使MOSFET开始导通所需的栅极与源极之间的最小电压。 ### 三、应用说明 US3401-VB因其独特的性能和结构设计,在多个领域都有着广泛的应用: - **Load ...
- **适配器(Adaptor)**:针对不同的硬件平台,实现IIC总线控制器的具体操作。 - **算法(Algorithm)**:提供与特定IIC控制器交互的策略。 - **客户驱动(Client Driver)**:针对特定IIC设备的驱动程序,处理设备...