java适配器模式的两种分类是什么
作者:吹吹风会发光
时间:2023-04-30
来源:互联网
浏览:0
1、类适配器模式实现方式:定义一个适配器类来实现当前系统的业务接口,同时又继承现有组件库中已经存在的组件。publicclassHelloWorld{publicstaticvoidmain(String[]args){Computercomputer=newComputer();SDCardsdCard=newSDCardImpl();System.out.println(computer.readSD(sdCard));System.out.println("------------");SDAdap
1、类适配器模式
实现方式:定义一个适配器类来实现当前系统的业务接口,同时又继承现有组件库中已经存在的组件。
public class HelloWorld {
public static void main(String[] args) {
Computer computer = new Computer();
SDCard sdCard = new SDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
SDAdapterTF adapter = new SDAdapterTF();
System.out.println(computer.readSD(adapter));
}
}
// SD卡的接口
interface SDCard {
// 读取SD卡功能
String readSD();
// 写入SD卡功能
void writeSD(String msg);
}
// SD卡实现类
class SDCardImpl implements SDCard {
@Override
public String readSD() {
String msg = "sd card read a msg: hello sd card";
return msg;
}
@Override
public void writeSD(String msg) {
System.out.println("sd card write msg: " + msg);
}
}
// 电脑类
class Computer {
public String readSD(SDCard sdCard) {
if (sdCard == null) {
throw new NullPointerException("sd card null");
}
return sdCard.readSD();
}
}
// TF卡接口
interface TFCard {
// 读取TF卡功能
String readTF();
// 写入TF卡功能
void writeTF(String msg);
}
// TF卡实现类
class TFCardImpl implements TFCard {
@Override
public String readTF() {
String msg = "sd card read a msg: hello tf card";
return msg;
}
@Override
public void writeTF(String msg) {
System.out.println("tf card write msg: " + msg);
}
}
// 定义适配器类(SD兼容TF)
class SDAdapterTF extends TFCardImpl implements SDCard {
@Override
public String readSD() {
System.out.println("adapter read tf card ");
return readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write tf card");
writeTF(msg);
}
}2、对象适配器模式
实现方式:对象适配器模式可采用将现有组件库中已经实现的组件引入适配器中,该类同时实现当前系统的业务接口。
public class HelloWorld {
public static void main(String[] args) {
Computer computer = new Computer();
SDCard sdCard = new SDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
TFCard tfCard = new TFCardImpl();
SDAdapterTF adapter = new SDAdapterTF(tfCard);
System.out.println(computer.readSD(adapter));
}
}
// SD卡的接口
interface SDCard {
// 读取SD卡功能
String readSD();
// 写入SD卡功能
void writeSD(String msg);
}
// SD卡实现类
class SDCardImpl implements SDCard {
@Override
public String readSD() {
String msg = "sd card read a msg: hello sd card";
return msg;
}
@Override
public void writeSD(String msg) {
System.out.println("sd card write msg: " + msg);
}
}
// 电脑类
class Computer {
public String readSD(SDCard sdCard) {
if (sdCard == null) {
throw new NullPointerException("sd card null");
}
return sdCard.readSD();
}
}
// TF卡接口
interface TFCard {
// 读取TF卡功能
String readTF();
// 写入TF卡功能
void writeTF(String msg);
}
// TF卡实现类
class TFCardImpl implements TFCard {
@Override
public String readTF() {
String msg = "sd card read a msg: hello tf card";
return msg;
}
@Override
public void writeTF(String msg) {
System.out.println("tf card write msg: " + msg);
}
}
// 定义适配器类(SD兼容TF)
class SDAdapterTF implements SDCard {
private TFCard tfCard;
public SDAdapterTF(TFCard tfCard) {
this.tfCard = tfCard;
}
@Override
public String readSD() {
System.out.println("adapter read tf card ");
return tfCard.readTF();
}
@Override
public void writeSD(String msg) {
System.out.println("adapter write tf card");
tfCard.writeTF(msg);
}
}
作者最新文章
iphone蓝牙连接ipad有什么用及连接方法教程
2026-09-21 17:28
PDF怎么取消密码保护?4种解锁方法整理
2026-09-08 18:23
三星 Galaxy Z Fold8 内屏边角支撑偏软?实测与官方回应
2026-09-08 16:39
手机Excel表格制作教程:小屏幕高效录入与格式调整指南
2026-09-04 09:27
PDF文档按页转换成图片怎么做?在线转换步骤整理
2026-09-03 11:06
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















