Реализовать паттерн команда и реализовать handler для команд
Closed this issue · 0 comments
kortov commented
CommandHandler
В пакет juja.sqlcmd.controller
добавить класс CommandHandler
Класс CommandHandler
должен содержать поля и метод
private DatabaseManager databaseManager;
private View view;
public void handleCommand(String userInput){}
Command
В пакет juja.sqlcmd.command
добавить Command в виде либо абстрактного класса, либо интерфейса, который должен иметь метод
public void execute(String userInput)
Команда должна иметь поля для выполнения своей задачи
DatabaseManager databaseManager;
View view;
Так же можно добавить методы
public abstract void executeConnected(String userInput);
public abstract void executeDisconnected(String userInput);
Инстанцирование команд
По желанию можно добавить enum и фабрику для создания команд.
В enum можно воспользоваться кодом:
public enum CommandType {
COMMAND(
"command",
Command::new
);
private String name;
private Supplier<Command> instantiator;
CommandType(String name, Supplier<Command> instantiator) {
this.name = name;
this.instantiator = instantiator;
}
public String getName() {
return name;
}
public Command getInstance() {
return instantiator.get();
}
Тесты
Реализовать базовую функциональность нескольких команд, добавить тесты, моки