一、場景描述
儀器數據文件的格式包含Pdf、Word、Excel等多種,不同種格式的文件其數據的采集方式不同,因此定義儀器數據采集接口,并定義PDF、Excel等不同的數據采集類實現該接口。
通過工廠類,調用不同的方法,獲取不同的儀器數據采集類,調用接口方法即可。
如不使用工廠模式,則需要new不同的采集類對象,使用工廠模式則隱藏了new的創建方式。
如下圖所示:

二、示例代碼
儀器數據采集接口:
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);
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。