Sobes.tech
Junior — Middle

Можете ли објаснити у чему се састоји патерн декоратор и шта је његово главно значење?

sobes.tech АИ

Одговор од АИ

Модел «Декоратор» омогућава динамичко додавање нових одговорности објектима, омотавајући их у друге декораторске објекте без измене оригиналне класе.

Главна идеја је креирање омотача око објекта који имплементира исти интерфејс и може извршити додатну логику пре или после позива метода оригиналног објекта.

Ово је корисно када желите да проширите функционалност без наслеђивања и измене постојећег кода.

Пример у псевдокоду:

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

// Коришћење:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7

Овим моделом, декоратор омогућава флексибилно додавање функционалности објектима у току извршавања.