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.