Sobes.tech
Junior — Middle

Puteți explica ce reprezintă pattern-ul decorator și care este sensul său principal?

sobes.tech AI

Răspuns de la AI

Pattern-ul «Decorare» permite adăugarea dinamică a responsabilităților noi obiectelor, învelindu-le în alte obiecte decorator fără a modifica clasa originală.

Ideea principală este de a crea o înveliș în jurul obiectului care implementează aceeași interfață și poate executa logică suplimentară înainte sau după apelarea metodelor obiectului original.

Acest lucru este util atunci când doriți să extindeți funcționalitatea fără a moșteni sau modifica codul existent.

Exemplu în pseudocod:

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; }
}

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

Astfel, decoratorul permite adăugarea flexibilă a funcționalității obiectelor în timpul execuției.