Sobes.tech
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 използва този шаблон за инкапсулация на повтарящи се операции и предоставяне на точки за разширение.