Назад к вопросам
Junior
72
questionbank
Какие функции должен переопределять класс, на который делегируют какие-либо задачи?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
// Для делегирования задач классу-делегату необходимы:
// Интерфейс с описанием делегируемых методов
interface DelegatedTask {
void performTask();
String getData();
}
// Класс-делегат, реализующий интерфейс и предоставляющий реализацию методов
class TaskDelegate implements DelegatedTask {
@Override
public void performTask() {
// Реализация выполнения задачи
System.out.println("Задача выполняется делегатом");
}
@Override
public String getData() {
// Реализация получения данных
return "Данные от делегата";
}
}
// Класс, который делегирует задачи
class TaskPerformer {
private final DelegatedTask delegate; // Ссылка на делегата
// Конструктор для внедрения делегата
public TaskPerformer(DelegatedTask delegate) {
this.delegate = delegate;
}
// Методы, которые делегируются
public void executeTask() {
delegate.performTask(); // Делегируем выполнение задачи
}
public String retrieveData() {
return delegate.getData(); // Делегируем получение данных
}
}
Таким образом, класс-делегат должен переопределять все методы, объявленные в интерфейсе, который описывает делегируемые задачи. Эти методы являются контрактом для взаимодействия между классом, который делегирует, и классом-делегатом.