package com.crawler.command; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class CommandController { private List commands; private Scanner scanner; private CommandHistory history; public CommandController() { commands = new ArrayList<>(); scanner = new Scanner(System.in); history = CommandHistory.getInstance(); initCommands(); } private void initCommands() { HelpCommand helpCmd = new HelpCommand(commands); commands.add(helpCmd); commands.add(new ListCommand()); commands.add(new CrawlCommand()); commands.add(new CacheCommand()); commands.add(new ExitCommand()); } public void start() { System.out.println("========================================"); System.out.println("Java爬虫框架 - 命令行模式"); System.out.println("========================================"); System.out.println("输入 'help' 查看可用指令"); System.out.println("========================================"); while (true) { System.out.print("> "); String input = scanner.nextLine().trim().toLowerCase(); if (input.isEmpty()) { continue; } history.add(input); executeCommand(input); } } private void executeCommand(String commandName) { for (Command cmd : commands) { if (cmd.getName().equals(commandName)) { cmd.execute(); return; } } System.out.println("未知指令: " + commandName); System.out.println("输入 'help' 查看可用指令"); } public void stop() { scanner.close(); } }