工厂设计模式我们制单,但是我在开发中遇到一位同事他用的这种方式挺有意思。废话不多说直接上代码。以下以FTP文件操作为demo
定义枚举类
@AllArgsConstructor @Getter public enum FileTypeEnum { UNKNOWN(0, "/upload/insurance", "", "未知"), A_FILE(1, "/upload/insurance/A_FILE", "A文件前缀", "A类文件"), B_FILE(2, "/upload/insurance/A_FILE", "B文件前缀", "B类文件"), C_FILE(3, "/upload/insurance/C_FILE", "C文件前缀", "C类文件"); private Integer type; private String basePath; private String fileNamePrefix; private String desc; public static FileTypeEnum findByType(Integer type) { for (FileTypeEnum item : FileTypeEnum.values()) { if (item.getType().equals(type)) { return item; } } throw new RuntimeException("文件类型枚举配置缺失,请检查"); } }
定义工厂枚举类型
@Data public class FileHandler { private static f