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);
}
}
作者最新文章
漫蛙网页版免费进入地址分享
2026-10-13 13:16
漫蛙manwa官方网站入口
2026-10-13 13:15
Typora怎么插入表格?Ctrl+T快速建表并调整行列
2026-10-05 17:59
2026年好用的思维导图软件推荐:高效实用排行榜
2026-09-30 13:14
寻简思维导图手机版设置在主题框中插入公式的方法
2026-09-30 13:03
上一篇:
MySQL中如何把时间转化成秒数
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































