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ń.