工厂模式与策略模式结合的最佳实践
1. 目录结构
(此处省略目录结构图)
2. SubjectType.java 策略枚举类
package com.sunxiansheng.design_pattern.factory_strategy.strategyenum;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Description: 题目类型,分为单选、多选、判断、简答
*/
public enum SubjectType {
// 单选题
SINGLE_CHOICE(1, "单选题"),
// 多选题
MULTIPLE_CHOICE(2, "多选题"),
// 判断题
JUDGMENT(3, "判断题"),
// 简答题
SHORT_ANSWER(4, "简答题");
private int code;
private String desc;
SubjectType(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public String getDesc() {
return desc;
}
// 将枚举转为 map
public static Map<Integer, SubjectType> enumeratedMaps = Stream.of(SubjectType.values())
.collect(Collectors.toMap(SubjectType::getCode, Function.identity()));
SubjectType {
enumeratedMaps.get(code);
}
}


