Sobes.tech
Junior — Middle

Jak jest zaimplementowany wzorzec 'Metoda szablonowa' w frameworku Spring?

sobes.tech AI

Odpowiedź od AI

W Springu wzorzec "Metoda szablonowa" jest implementowany za pomocą klas abstrakcyjnych i hooków, gdzie klasa bazowa definiuje ogólny algorytm, a podklasy nadpisują poszczególne kroki. Na przykład, w Spring Framework istnieje klasa JdbcTemplate, która ustala wzorzec pracy z JDBC: otwarcie połączenia, wykonanie zapytania, przetwarzanie wyniku i zamknięcie zasobów. Użytkownik nadpisuje tylko część związaną z przetwarzaniem wyniku (np. przez RowMapper).

Przykład uproszczonej metody szablonowej:

public abstract class AbstractProcessor {
    public void process() {
        stepOne();
        stepTwo();
        stepThree();
    }

    protected abstract void stepOne();

    protected void stepTwo() {
        // wspólny krok, może być nadpisany
        System.out.println("Domyślny krok dwa");
    }

    protected abstract void stepThree();
}

public class ConcreteProcessor extends AbstractProcessor {
    @Override
    protected void stepOne() {
        System.out.println("Niestandardowy krok jeden");
    }

    @Override
    protected void stepThree() {
        System.out.println("Niestandardowy krok trzy");
    }
}

W ten sposób Spring używa tego wzorca do enkapsulacji powtarzających się operacji i zapewnienia punktów rozszerzeń.