java适配器模式的两种分类是什么
作者:吹吹风会发光
时间:2023-05-04
浏览:1
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);
}
}
作者最新文章
Agent Space智能体如何进行功能测试
2026-11-01 08:45
Proxifier怎么卸载:Windows标准版彻底移除与配置清理指南
2026-10-30 09:37
七彩虹 iGame RTX 5070 Ti Ultra SFF 显卡图赏:嘻哈涂鸦风,设计更潮酷
2026-10-26 16:48
viso如何导入word的详细操作步骤教程
2026-10-20 16:03
蛙蛙写作苹果手机更新新版本怎么下载
2026-10-15 19:40
上一篇:
MySQL中如何把时间转化成秒数
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































