Sobes.tech
Junior — Middle

Kaip įgyvendintas 'Šablono metodas' modelis Spring karkase?

sobes.tech AI

Atsakymas iš AI

Springe šabloninė metodas yra įgyvendinamas per abstrakčias klases ir hook'us, kur bazinė klasė apibrėžia bendrą algoritmą, o pogrupiai perrašinėja atskirus žingsnius. Pavyzdžiui, Spring Framework yra klasė JdbcTemplate, kuri nustato darbą su JDBC: ryšio atidarymą, užklausos vykdymą, rezultatų apdorojimą ir išteklių uždarymą. Vartotojas tik perrašo rezultatų apdorojimo dalį (pvz., per RowMapper).

Supaprastintas šabloninio metodo pavyzdys:

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

    protected abstract void stepOne();

    protected void stepTwo() {
        // bendras žingsnis, gali būti perrašytas
        System.out.println("Numatytasis žingsnis du");
    }

    protected abstract void stepThree();
}

public class ConcreteProcessor extends AbstractProcessor {
    @Override
    protected void stepOne() {
        System.out.println("Priderintas žingsnis vienas");
    }

    @Override
    protected void stepThree() {
        System.out.println("Priderintas žingsnis trys");
    }
}

Taip, Spring naudoja šį šabloną, kad inkapsuliuotų pasikartojančias operacijas ir suteiktų plėtros taškus.