У меня есть метод, который должен выполнить несколько задач, чтобы выполнить большую задачу.Каждая задача может содержать около 20-30 строк кода, поэтому я решил иметь класс для каждой задачи.
public void bigTask() {
TaskProcessor executor = new TaskProcessor();
executor.addTask(new Task1(some arguments here));
executor.addTask(new Task2(some other arguments here));
executor.addTask(new Task2(some other arguments here));
executor.run();
}
public interface Task {
public void execute();
}
public class Task1 implements Task {
@Override
public void execute() {
//Some code here
}
}
public class Task2 implements Task {
@Override
public void execute() {
//Some other code here
}
}
public class Task3 implements Task {
@Override
public void execute() {
//Some other code here
}
}
public class TaskProcessor implements Serializable {
private List<Task> tasksList;
public TaskProcessor () {
this.tasksList = new ArrayList<Task>();
}
public void addTask(Task task) {
this.tasksList.add(task);
}
public void execute() {
for (Task task : this.tasksList) {
task.execute();
}
}
}
Для меня этот код похож на шаблон команды, но я не уверен, потому что аргументыдля каждой задачи различаются типы, в отличие от традиционного шаблона команды.
Как вы думаете, это можно считать реализацией шаблона команды?Думаете ли вы, что этот подход подходит для разделения большого метода?
Спасибо