Browse Source

上传文件至 'project/controller'

main
LiuZihan 4 weeks ago
parent
commit
d0e5d89823
  1. 43
      project/controller/MovieController.java

43
project/controller/MovieController.java

@ -0,0 +1,43 @@
package com.example.moviecli.controller;
import com.example.moviecli.command.*;
import com.example.moviecli.repository.MovieRepository;
import com.example.moviecli.strategy.MovieStrategyFactory;
import com.example.moviecli.view.ConsoleView;
import java.util.HashMap;
import java.util.Map;
public class MovieController {
private final Map<String, Command> commands = new HashMap<>();
private final ConsoleView view;
private final MovieRepository repository;
public MovieController(ConsoleView view, MovieRepository repository, MovieStrategyFactory factory) {
this.view = view;
this.repository = repository;
register(new CrawlCommand(view, factory));
register(new AutoCommand(view, factory));
register(new ListCommand(view));
register(new SearchCommand(view));
register(new StatCommand(view));
register(new ExportCommand(view));
register(new HelpCommand(view));
register(new ExitCommand(view));
}
private void register(Command cmd) {
commands.put(cmd.getName(), cmd);
}
public void handle(String input) {
if (input == null || input.trim().isEmpty()) return;
String[] parts = input.trim().split("\\s+");
String cmdName = parts[0].toLowerCase();
Command cmd = commands.get(cmdName);
if (cmd == null) {
view.printError("未知命令:" + cmdName + ",输入 help 查看帮助。");
return;
}
cmd.execute(parts, repository);
}
}
Loading…
Cancel
Save