Не знаю как избавиться от большого количества параметров в конструкторе
Всем привет. Делаю свой первый проект и решил воспользоваться паттерном Command. В этом паттерне есть специальный класс CommandContainer. И так как каждая группа команд работает с несколькими сервисами, то конструктор будет иметь в будущем много параметров. Пример конструктора моего конструктора:
public class CommandContainer {
private final Map<String, Command> commandMap = new HashMap<>();
private final Command unknownCommand;
public CommandContainer(SendBotMessageService sendBotMessageService, WorkerService workerService) {
commandMap.put(CommandName.START.getCommandName(), new StartCommand(sendBotMessageService));
commandMap.put(CommandName.HELP.getCommandName(), new HelpCommand(sendBotMessageService));
commandMap.put(CommandName.CREATE_WORKER.getCommandName(),
new CreateWorkerCommand(sendBotMessageService, workerService));
unknownCommand = new UnknownCommand(sendBotMessageService);
}
public Command retrieveCommand(String commandIdentifier) {
return commandMap.getOrDefault(commandIdentifier, unknownCommand);
}
}
Ну и помимо SendBotMessageService sendBotMessageService, WorkerService workerService
нужно будет добавлять и другие сервисы, которые работают с командами.
Подскажите как это можно упростить?