Sobes.tech
Junior — Middle

Kas saak selgitada, mis on dekoratiivmuster ja mis on selle peamine mõte?

sobes.tech AI

Vastus AI-lt

«Decorator» muster võimaldab dünaamiliselt lisada objektidele uusi vastutusi, neid ümbritsedes teistesse dekoratiivsetesse objektidesse, ilma algset klassi muutmata.

Põhitees on luua ümbris objekti ümber, mis rakendab sama liidest ja võib täita täiendavat loogikat enne või pärast algse objekti meetodite väljakutset.

See on kasulik, kui soovite laiendada funktsionaalsust ilma pärimise ja olemasoleva koodi muutmiseta.

Näide pseudokoodis:

interface Coffee {
    double cost();
}

class SimpleCoffee implements Coffee {
    public double cost() { return 5; }
}

class MilkDecorator implements Coffee {
    private Coffee coffee;
    public MilkDecorator(Coffee coffee) { this.coffee = coffee; }
    public double cost() { return coffee.cost() + 2; }
}

// Kasutus:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7

Sellisel viisil võimaldab dekorator paindlikult lisada funktsionaalsust objektidele jooksvalt.