Sobes.tech
Junior — Middle

Kuidas on rakendatud 'Mallimeetod' muster Spring raamistikus?

sobes.tech AI

Vastus AI-lt

Springis on "Mallimeetodi" muster kasutusele võtnud abstraktsete klasside ja hook-ide kaudu, kus alusklass määratleb üldise algoritmi ja alamklassid üle kirjutavad üksikud sammud. Näiteks Spring Frameworkis on klass JdbcTemplate, mis määratleb JDBC-ga töötamise mustri: ühenduse avamine, päringu täitmine, tulemuse töötlemine ja ressursside sulgemine. Kasutaja üle kirjutab ainult tulemuse töötlemise osa (näiteks RowMapper kaudu).

Lihtsustatud mallimeetodi näide:

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

    protected abstract void stepOne();

    protected void stepTwo() {
        // ühine samm, võib olla üle kirjutatud
        System.out.println("Vaikimisi samm kaks");
    }

    protected abstract void stepThree();
}

public class ConcreteProcessor extends AbstractProcessor {
    @Override
    protected void stepOne() {
        System.out.println("Kohandatud samm üks");
    }

    @Override
    protected void stepThree() {
        System.out.println("Kohandatud samm kolm");
    }
}

Nii kasutab Spring seda mustrit korduvate operatsioonide kapseldamiseks ja laienduspunktide pakkumiseks.