前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java设计模式(六)Adapter适配器模式

Java设计模式(六)Adapter适配器模式

作者头像
用户1637609
发布2018-04-12 15:43:06
7330
发布2018-04-12 15:43:06
举报
文章被收录于专栏:马洪彪马洪彪

一、场景描述

“仪器数据采集器”包含采集数据以及发送数据给服务器两行为,则可定义“仪器数据采集器”接口,定义两方法“采集数据capture”和“发送数据sendData”。

“PDF文件数据采集器”实现时,要实现“仪器数据采集器”接口,实现“采集数据”方法;目前有“PDF文件内容解析工具”类PdfFileExtractor,该类实现PDF文件的数据解析;因此,可使“PDF文件数据采集器”继承“PDF文件内容解析工具”类,并实现“仪器数据采集器”接口,如下图所示:

 适配器的作用是,继承现有的类,通过实现接口,扩展其用途。

类适配器继承源类,由于子类仅能继承一个父类,因此被继承的源类实现目标接口的方法多少也可以算做适配程度的高低。

二、示例代码

 接口:

代码语言:javascript
复制
package lims.designpatterndemo.adapterclassdemo;

public interface EquipmentDataCapture {
    public String capture(String filePath); 
    public boolean sendData(String equipmentData);
}

源类:

代码语言:javascript
复制
package lims.designpatterndemo.adapterclassdemo;

public class PdfFileExtractor {
    public String capture(String filePath){
        return "pdf file content";
    }
}

适配器类:

代码语言:javascript
复制
package lims.designpatterndemo.adapterclassdemo;

public class PdfFileCapture extends PdfFileExtractor implements EquipmentDataCapture {

    @Override
    public boolean sendData(String equipmentData) { 
        return false;
    }

}

调用示例:

代码语言:javascript
复制
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);
    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、场景描述
  • 二、示例代码
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档