欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java设计模式之工厂模式

程序员文章站 2024-02-06 13:10:28
一、场景描述 仪器数据文件的格式包含pdf、word、excel等多种,不同种格式的文件其数据的采集方式不同,因此定义仪器数据采集接口,并定义pdf、excel等不同...

一、场景描述

仪器数据文件的格式包含pdf、word、excel等多种,不同种格式的文件其数据的采集方式不同,因此定义仪器数据采集接口,并定义pdf、excel等不同的数据采集类实现该接口。

通过工厂类,调用不同的方法,获取不同的仪器数据采集类,调用接口方法即可。

如不使用工厂模式,则需要new不同的采集类对象,使用工厂模式则隐藏了new的创建方式。

如下图所示:

Java设计模式之工厂模式

二、示例代码

仪器数据采集接口:

package lims.designpatterndemo.factorydemo;

public interface equipmentdatacapture {
  public string capture(string filepath);
}

pdf文件数据采集类:

package lims.designpatterndemo.factorydemo;

public class pdffilecapture implements equipmentdatacapture{

  @override
  public string capture(string filepath) {
    return "pdf file content";
  }
}

excel文件数据采集类:

package lims.designpatterndemo.factorydemo;

public class excelfilecapture implements equipmentdatacapture{

  @override
  public string capture(string filepath) { 
    return "excel file content";
  }
}

工厂类:

package lims.designpatterndemo.factorydemo;

public class equipmentdatacapturefactory {

  public static equipmentdatacapture getpdffilecapture(){
    return new pdffilecapture();
  }
  
  public static equipmentdatacapture getexcelfilecapture(){
    return new excelfilecapture();
  }
}

调用示例:

package lims.designpatterndemo.factorydemo;

public class factorydemo {

  public static void main(string[] args) {
    equipmentdatacapture edc = equipmentdatacapturefactory.getpdffilecapture();
    edc = equipmentdatacapturefactory.getexcelfilecapture();
    string filecontent = edc.capture("");
    system.out.println(filecontent);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。