Sobes.tech
Junior — Middle

Kako je implementiran obrazac 'Šablonska metoda' u okviru Spring?

sobes.tech АИ

Одговор од АИ

U Springu, obrazac "Šablonska metoda" implementiran je putem apstraktnih klasa i hook-ova, gde osnovna klasa definiše opšti algoritam, a podklase prepisuju pojedinačne korake. Na primer, u Spring Framework-u postoji klasa JdbcTemplate, koja postavlja šablon rada sa JDBC-jem: otvaranje veze, izvršavanje upita, obrada rezultata i zatvaranje resursa. Korisnik prepisuje samo deo koji je povezan sa obradom rezultata (npr. putem RowMapper).

Primer pojednostavljene šablonske metode:

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

    protected abstract void stepOne();

    protected void stepTwo() {
        // zajednički korak, može biti prepisan
        System.out.println("Podrazumevani korak dva");
    }

    protected abstract void stepThree();
}

public class ConcreteProcessor extends AbstractProcessor {
    @Override
    protected void stepOne() {
        System.out.println("Prilagođeni korak jedan");
    }

    @Override
    protected void stepThree() {
        System.out.println("Prilagođeni korak tri");
    }
}

Na ovaj način, Spring koristi ovaj obrazac za enkapsulaciju ponovljenih operacija i pružanje tačaka za proširenje.