当前位置:网站首页 > 技术博客 > 正文

适配器模式使用场景



分享一个例子:笔记本通过读卡去读取TF卡;

一、先模拟计算机读取SD卡:

1、先创建一个SD卡的接口:

public interface SDCard { //读取SD卡方法 String readSD(); //写入SD卡功能 int writeSD(String msg); }

2、创建SD卡接口的实现类,模拟SD卡的功能:

public class SDCardImpl implements SDCard { @Override public String readSD() { String msg = "sdcard read a msg :hello word SD"; return msg; } @Override public int writeSD(String msg) { System.out.println("sd card write msg : " + msg); return 1; } }

3、创建计算机接口,计算机提供读取SD卡方法:

public interface Computer { String readSD(SDCard sdCard); }

4、创建一个计算机实例,实现计算机接口,并实现其读取SD卡方法:

public class ThinkpadComputer implements Computer { @Override public String readSD(SDCard sdCard) { if(sdCard == null)throw new NullPointerException("sd card null"); return sdCard.readSD(); } }

5、这时候就可以模拟计算机读取SD卡功能:

public class ComputerReadDemo { public static void main(String[] args) { Computer computer = new ThinkpadComputer(); SDCard sdCard = new SDCardImpl(); System.out.println(computer.readSD(sdCard)); } }

二、接下来在不改变计算机读取SD卡接口的情况下,通过适配器模式读取TF卡:

1、创建TF卡接口:

public interface TFCard { String readTF(); int writeTF(String msg); }

2、创建TF卡实例:

public class TFCardImpl implements TFCard { @Override public String readTF() { String msg ="tf card reade msg : hello word tf card"; return msg; } @Override public int writeTF(String msg) { System.out.println("tf card write a msg : " + msg); return 1; } }

3、创建SD适配TF (也可以说是SD兼容TF,相当于读卡器):

实现SDCard接口,并将要适配的对象作为适配器的属性引入。

public 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 int writeSD(String msg) { System.out.println("adapter write tf card"); return tfCard.writeTF(msg); } }

4、通过上面的例子测试计算机通过SD读卡器读取TF卡:

public class ComputerReadDemo { public static void main(String[] args) { Computer computer = new ThinkpadComputer(); SDCard sdCard = new SDCardImpl(); System.out.println(computer.readSD(sdCard)); System.out.println("===================================="); TFCard tfCard = new TFCardImpl(); SDCard tfCardAdapterSD = new SDAdapterTF(tfCard); System.out.println(computer.readSD(tfCardAdapterSD)); } }

输出:

sdcard read a msg :hello word SD ==================================== adapter read tf card tf card reade msg : hello word tf card

在这种模式下,计算机并不需要知道具体是什么卡,只需要负责操作接口即可,具体操作的什么类,由适配器决定。

版权声明


相关文章:

  • 破解密码常用技术2025-08-25 14:01:00
  • 超像素分割的技术难点2025-08-25 14:01:00
  • 免费游戏源码2025-08-25 14:01:00
  • 12306系统设计架构图2025-08-25 14:01:00
  • dos或linux2025-08-25 14:01:00
  • sql中游标是什么2025-08-25 14:01:00
  • mysql分区表和分表2025-08-25 14:01:00
  • 武汉电信的ip地址是多少2025-08-25 14:01:00
  • es6最新特性2025-08-25 14:01:00
  • javajdk哪个版本好2025-08-25 14:01:00