Junior — Middle
Как е реализиран моделът 'Шаблонен метод' във фреймуърка Spring?
sobes.tech AI
Отговор от AI
В Spring шаблонът "Шаблонен метод" е реализиран чрез абстрактни класове и hooks, където базовият клас определя общия алгоритъм, а подкласовете преписват отделните стъпки. Например, в 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("Стандартна стъпка две");
}
protected abstract void stepThree();
}
public class ConcreteProcessor extends AbstractProcessor {
@Override
protected void stepOne() {
System.out.println("Персонализирана стъпка едно");
}
@Override
protected void stepThree() {
System.out.println("Персонализирана стъпка три");
}
}
По този начин Spring използва този шаблон за инкапсулация на повтарящи се операции и предоставяне на точки за разширение.