import java.text.DecimalFormat; import java.util.Random; /** * 数学题目生成器,根据不同难度生成相应的数学题目(外观类) * 将具体生成逻辑委托给对应子类,保持对外 API 不变。 */ public class MathProblemGenerator { private final Random random; private final DecimalFormat df; public MathProblemGenerator() { this.random = new Random(); this.df = new DecimalFormat("#.##"); } /** * 根据难度生成数学题目 * @param difficulty 难度级别(小学、初中、高中) * @return 生成的数学题目 */ public MathProblem generateProblem(String difficulty) { switch (difficulty) { case "小学": return new ElementaryProblemGenerator(random, df).generate(); case "初中": return new MiddleSchoolProblemGenerator(random, df).generate(); case "高中": return new HighSchoolProblemGenerator(random, df).generate(); default: throw new IllegalArgumentException("不支持的难度级别: " + difficulty); } } }