java的适配器模式_java适配器模式的两种分类

1021d14a8c5c3d5226693fd896b5d7f1.png

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);

}

}

以上就是java适配器模式的两种分类,希望能对大家有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值