简单工厂模式

简单工厂模式

简单工厂模式⼜称⼯⼚⽅法模式,是⼀种创建型设计模式,在工厂类中提供⼀个创建对象的⽅法, 允许客户端决定实例化对象的类型。

定义接口

以文件转换为示例。

1
2
3
4
5
6
7
import java.io.File;

public interface Converter {

byte[] convertToPdf(File file) throws Exception;
byte[] convertToPdf(byte[] file) throws Exception;
}

实现文件转换接口

1. word转pdf
2. excel转pdf
3. ppt转pdf
4. 图片转pdf

文件转换工厂

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class ConvertPdfFactory {

private static String DOC = "doc";
private static String DOCX = "docx";
private static String JPG = "jpg";
private static String TIF = "tif";
private static String JPEG = "jpeg";
private static String XLS = "xls";
private static String XLSX= "xlsx";
private static String PPT= "ppt";
private static String PPTX= "pptx";

public static Converter create(String type){
if (type.toLowerCase().equals(DOC) || type.toLowerCase().equals(DOCX)){
return WordToPdf.create();
}
if (type.toLowerCase().equals(XLS) || type.toLowerCase().equals(XLSX)){
return ExcelToPdf.create();
}
if (type.toLowerCase().equals(PPT) || type.toLowerCase().equals(PPTX)){
return SlideToPdf.create();
}
if (type.toLowerCase().equals(JPG) || type.toLowerCase().equals(TIF) || type.toLowerCase().equals(JPEG)){
return ImageToPdf.create();
}
throw new NullPointerException("找不到转化类");
}
}