package com.quizgenerator.system; import com.quizgenerator.entity.User; import com.quizgenerator.service.QuestionService; import com.quizgenerator.service.UserService; /** 应用程序的主入口类,负责启动和协调整个问答流程. */ public class QuizApplication { private final LoginHandler loginHandler; private final MainMenuHandler mainMenuHandler; private final ConsoleUi consoleUi; /** 构造 QuizApplication 实例. 负责初始化所有必要的服务和处理器. */ public QuizApplication() { // 1. 初始化 UserService userService = new UserService(); QuestionService questionService = new QuestionService(); this.consoleUi = new ConsoleUi(); // 2. 初始化处理器 this.loginHandler = new LoginHandler(userService, consoleUi); this.mainMenuHandler = new MainMenuHandler(questionService, consoleUi); } /** 启动并运行应用程序的主循环. 这个方法会持续运行,处理用户登录和主菜单交互. */ public void run() { consoleUi.displayWelcomeMessage(); while (true) { // 3. 处理登录流程 User currentUser = loginHandler.performLogin(); // 4. 进入主菜单循环 if (currentUser != null) { consoleUi.displayLoginSuccess(currentUser); mainMenuHandler.handleMainMenu(currentUser); } } } /** * 应用程序的入口点. * * @param args 命令行参数 (未使用). */ public static void main(String[] args) { QuizApplication app = new QuizApplication(); app.run(); } }