国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java設計模式之抽象工廠模式

Java設計模式之抽象工廠模式

2021-04-14 11:57馬洪彪 Java教程

這篇文章主要為大家詳細介紹了Java設計模式之抽象工廠模式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、場景描述

《Java設計模式(一)工廠模式》

工廠模式有一缺點,就是破壞了類的封閉性原則。例如,如果需要增加Word文件的數據采集,此時按以下步驟操作:

  • 創建Word文件數據采集類,實現儀器數據采集接口;
  • 修改儀器數據采集工廠類,增加Word文件數據采集類的工廠方法;
  • 調用工廠類的word文件方法;

步驟2修改了工廠類,如果每增加一實現類都需要修改工廠類,那么這樣就不合理了。

解決辦法是使用抽象工廠類,為每一個實現類都創建其工廠類,并增加工廠接口,使各工廠類實現該接口。

使用抽象工廠后,上述步驟更改為:

  • 創建Word文件數據采集類,實現儀器數據采集接口;
  • 創建Word文件數據采集類的工廠類,該類實現工廠接口,接口方法創建Word文件數據采集類;
  • 獲取Word文件數據采集類的工廠類對象,并調用工廠接口方法,創建類對象,然后調用其方法。

修改后,由于對工廠類進行了抽象,定義了工廠接口,因此新增實現類時不再需要修改原有代碼,不破壞原有實現。

如下圖所示:

Java設計模式之抽象工廠模式

二、示例代碼

儀器數據采集接口:

?
1
2
3
4
5
package lims.designpatterndemo.abstractfactorydemo;
 
public interface EquipmentDataCapture {
  public String capture(String filePath);
}

PDF文件采集類:

?
1
2
3
4
5
6
7
8
9
package lims.designpatterndemo.abstractfactorydemo;
 
public class PdfFileCapture implements EquipmentDataCapture{
 
  @Override
  public String capture(String filePath) {
    return "PDF file content";
  }
}

Excel文件采集類:

?
1
2
3
4
5
6
7
8
9
package lims.designpatterndemo.abstractfactorydemo;
 
public class ExcelFileCapture implements EquipmentDataCapture{
 
  @Override
  public String capture(String filePath) {
    return "Excel File Content";
  }
}

抽象工廠,即工廠接口:

?
1
2
3
4
5
package lims.designpatterndemo.abstractfactorydemo;
 
public interface EquipmentDataCaptureFactory {
   public EquipmentDataCapture getCapture();
}

PDF文件采集工廠類:

?
1
2
3
4
5
6
7
8
9
package lims.designpatterndemo.abstractfactorydemo;
 
public class PdfFileCaptureFactory implements EquipmentDataCaptureFactory {
 
  @Override
  public EquipmentDataCapture getCapture() {
    return new PdfFileCapture();
  }
}

Excel文件采集工廠類:

?
1
2
3
4
5
6
7
8
9
package lims.designpatterndemo.abstractfactorydemo;
 
public class ExcelFileCaptureFactory implements EquipmentDataCaptureFactory {
 
  @Override
  public EquipmentDataCapture getCapture() {
    return new ExcelFileCapture();
  }
}

調用示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
package lims.designpatterndemo.abstractfactorydemo;
 
public class AbstractFactoryDemo {
 
  public static void main(String[] args) {
    EquipmentDataCaptureFactory facotry = new PdfFileCaptureFactory();
    facotry = new ExcelFileCaptureFactory();
    EquipmentDataCapture capture = facotry.getCapture();
    String fileContent = capture.capture("");
    System.out.println(fileContent);
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/mahongbiao/p/8619054.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线国产视频 | 亚洲美女久久 | 亚洲精品乱码久久久久久久 | 国产精品久久久 | 国产精品第一国产精品 | 久久精品2019中文字幕 | 国产精品免费在线 | 午夜操操 | 色婷婷综合久久久中文字幕 | 亚洲免费精品 | 成人精品久久 | 看特级毛片| 一级免费视频 | 免费看黄色一级电影 | 亚洲免费成人 | 香蕉久久夜色精品国产使用方法 | 国产精品美女久久久久aⅴ国产馆 | av在线网址观看 | 黄色网页在线 | 中文字幕精品视频 | 黑人中文字幕一区二区三区 | www.色婷婷| 亚洲一区二区免费视频 | 亚洲精品一区二区三区樱花 | 国产色| 欧美成人a∨高清免费观看 国产99久久 | 日日天天 | 日本中文字幕一区二区 | 欧美日韩在线精品 | 欧美精品一区二区三区在线四季 | 99精品视频一区二区三区 | 九九国产 | 久久久久一区二区 | 黄色国产精品 | 午夜在线电影 | 毛片免费在线 | 午夜影视| 成人在线午夜 | 国产午夜久久 | 日韩在线免费观看视频 | 三级av在线 |