删除InvalidInputException和所有相关用法

删除EducationLevel和所有相关用法,为简化逻辑,改为直接使用难度字符串
main
Teptao 5 months ago
parent cd7dc30e92
commit d32dddf014

@ -108,11 +108,10 @@ public class Application {
private void handleSwitchLevel(String input) {
Matcher matcher = SWITCH_COMMAND_PATTERN.matcher(input);
if (matcher.matches()) {
String levelName = matcher.group(1);
EducationLevel level = EducationLevel.fromLevelName(levelName);
String level = matcher.group(1);
if (level != null) {
sessionManager.setCurrentGenerator(level);
System.out.println("成功切换到 " + levelName + " 出题模式。");
System.out.println("成功切换到 " + level + " 出题模式。");
}
}
}

@ -1,39 +0,0 @@
/**
*
*
*/
public enum EducationLevel {
PRIMARY("小学"),
MIDDLE("初中"),
HIGH("高中");
private final String levelName;
EducationLevel(String levelName) {
this.levelName = levelName;
}
/**
*
*
* @return
*/
public String getLevelName() {
return levelName;
}
/**
*
*
* @param levelName "初中"
* @return EducationLevel null
*/
public static EducationLevel fromLevelName(String levelName) {
for (EducationLevel level : values()) {
if (level.getLevelName().equals(levelName)) {
return level;
}
}
return null;
}
}

@ -13,17 +13,17 @@ public class InMemoryUserRepository implements UserRepository {
public InMemoryUserRepository() {
// 初始化预定义的9个用户账户
// 小学老师
userDatabase.put("张三1", new User("张三1", "123", EducationLevel.PRIMARY));
userDatabase.put("张三2", new User("张三2", "123", EducationLevel.PRIMARY));
userDatabase.put("张三3", new User("张三3", "123", EducationLevel.PRIMARY));
userDatabase.put("张三1", new User("张三1", "123", "小学"));
userDatabase.put("张三2", new User("张三2", "123", "小学"));
userDatabase.put("张三3", new User("张三3", "123", "小学"));
// 初中老师
userDatabase.put("李四1", new User("李四1", "123", EducationLevel.MIDDLE));
userDatabase.put("李四2", new User("李四2", "123", EducationLevel.MIDDLE));
userDatabase.put("李四3", new User("李四3", "123", EducationLevel.MIDDLE));
userDatabase.put("李四1", new User("李四1", "123", "初中"));
userDatabase.put("李四2", new User("李四2", "123", "初中"));
userDatabase.put("李四3", new User("李四3", "123", "初中"));
// 高中老师
userDatabase.put("王五1", new User("王五1", "123", EducationLevel.HIGH));
userDatabase.put("王五2", new User("王五2", "123", EducationLevel.HIGH));
userDatabase.put("王五3", new User("王五3", "123", EducationLevel.HIGH));
userDatabase.put("王五1", new User("王五1", "123", "高中"));
userDatabase.put("王五2", new User("王五2", "123", "高中"));
userDatabase.put("王五3", new User("王五3", "123", "高中"));
}
@Override

@ -38,7 +38,7 @@ public final class SessionManager {
public void startSession(User user) {
this.currentUser = user;
// 根据用户的默认级别,初始化对应的题目生成策略
setGeneratorByDefaultLevel(user.getDefaultLevel());
setGeneratorByLevel(user.getDefaultLevel());
}
/**
@ -66,27 +66,26 @@ public final class SessionManager {
*
* @param level
*/
public void setCurrentGenerator(EducationLevel level) {
public void setCurrentGenerator(String level) {
if (level == null) {
throw new IllegalArgumentException("难度等级不可为空。");
}
setGeneratorByDefaultLevel(level);
setGeneratorByLevel(level);
}
private void setGeneratorByDefaultLevel(EducationLevel level) {
private void setGeneratorByLevel(String level) {
switch (level) {
case PRIMARY:
case "小学":
this.currentGenerator = new ElementaryProblemGenerator();
break;
case MIDDLE:
case "初中":
this.currentGenerator = new MiddleSchoolProblemGenerator();
break;
case HIGH:
case "高中":
this.currentGenerator = new HighSchoolProblemGenerator();
break;
default:
// 理论上不会发生,因为枚举是固定的
throw new IllegalStateException("错误的难度等级: " + level);
System.out.println("错误的难度等级: " + level);
}
}

@ -8,10 +8,10 @@ public class User {
private final String username;
private final String password; // 注意:在生产系统中应存储哈希值
private final EducationLevel defaultLevel;
private final String defaultLevel;
private final String storagePath;
public User(String username, String password, EducationLevel defaultLevel) {
public User(String username, String password, String defaultLevel) {
this.username = username;
this.password = password;
this.defaultLevel = defaultLevel;
@ -27,7 +27,7 @@ public class User {
return password;
}
public EducationLevel getDefaultLevel() {
public String getDefaultLevel() {
return defaultLevel;
}

Loading…
Cancel
Save