一、场景描述
“仪器数据采集器”包含采集数据以及发送数据给服务器两行为,则可定义“仪器数据采集器”接口,定义两方法“采集数据capture”和“发送数据sendData”。
“PDF文件数据采集器”实现时,要实现“仪器数据采集器”接口,实现“采集数据”方法;目前有“PDF文件内容解析工具”类PdfFileExtractor,该类实现PDF文件的数据解析;因此,可使“PDF文件数据采集器”继承“PDF文件内容解析工具”类,并实现“仪器数据采集器”接口,如下图所示:
适配器的作用是,继承现有的类,通过实现接口,扩展其用途。
类适配器继承源类,由于子类仅能继承一个父类,因此被继承的源类实现目标接口的方法多少也可以算做适配程度的高低。
二、示例代码
接口:
package lims.designpatterndemo.adapterclassdemo; public interface EquipmentDataCapture { public String capture(String filePath); public boolean sendData(String equipmentData); }
源类:
package lims.designpatterndemo.adapterclassdemo; public class PdfFileExtractor { public String capture(String filePath){ return "pdf file content"; } }
适配器类:
package lims.designpatterndemo.adapterclassdemo; public class PdfFileCapture extends PdfFileExtractor implements EquipmentDataCapture { @Override public boolean sendData(String equipmentData) { return false; } }
调用示例:
package lims.designpatterndemo.adapterclassdemo; public class ClassAdapterDemo { public static void main(String[] args) { PdfFileCapture capture = new PdfFileCapture(); String fileContent = capture.capture(""); System.out.println(fileContent); boolean rst = capture.sendData(fileContent); System.out.println(rst); } }