Назад к вопросам
Junior — Middle
63
Каким образом реализован паттерн 'Шаблонный метод' в фреймворке Spring?
Ответ от нейросети
sobes.tech AI
В Spring паттерн "Шаблонный метод" реализован через абстрактные классы и хуки, где базовый класс определяет общий алгоритм, а подклассы переопределяют отдельные шаги. Например, в Spring Framework есть класс JdbcTemplate, который задаёт шаблон работы с JDBC: открытие соединения, выполнение запроса, обработка результата и закрытие ресурсов. Пользователь переопределяет только часть, связанную с обработкой результата (например, через RowMapper).
Пример упрощённого шаблонного метода:
public abstract class AbstractProcessor {
public void process() {
stepOne();
stepTwo();
stepThree();
}
protected abstract void stepOne();
protected void stepTwo() {
// общий шаг, может быть переопределён
System.out.println("Default step two");
}
protected abstract void stepThree();
}
public class ConcreteProcessor extends AbstractProcessor {
@Override
protected void stepOne() {
System.out.println("Custom step one");
}
@Override
protected void stepThree() {
System.out.println("Custom step three");
}
}
Таким образом, Spring использует этот паттерн для инкапсуляции повторяющихся операций и предоставления точек расширения.