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


    一、场景描述

    “仪器数据采集器”包含采集数据以及发送数据给服务器两行为,则可定义“仪器数据采集器”接口,定义两方法“采集数据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);
        }
    
    }
  • 相关阅读:
    可扩展设计的三个维度
    今天用批处理脚本遇到的两个问题
    响应式编程学习记录
    ThreadLocal使用注意
    JDK8 函数式接口
    Java多线程相关的常用接口
    java异步编程
    java多线程同步器
    paramiko获取远程主机的环境变量
    python为不同的对象如何分配内存的小知识
  • 原文地址:https://www.cnblogs.com/mahongbiao/p/8626610.html
Copyright © 2020-2023  润新知