Sobes.tech
Junior — Middle

Magyarázza el a Decorátor mintázat fogalmát és annak előnyét a szoftverrendszerek tervezésében.

sobes.tech MI

Válasz az MI-től

A Decorator minta lehetővé teszi, hogy dinamikusan adjunk hozzá új felelősségeket az objektumokhoz, azokat más dekorátor objektumokba csomagolva, amelyek ugyanazt az interfészt valósítják meg. Ez alternatíva az örökléshez a funkcionalitás bővítésére.

Előnyök:

  • Rugalmasság: a dekorátorokat különböző sorrendben és mennyiségben lehet kombinálni.
  • Elkerüli az osztályok robbanásszerű növekedését örökléssel.
  • Lehetővé teszi viselkedés hozzáadását futásidőben.

Példa JavaScript-ben (Node.js):

class Coffee {
  cost() { return 5; }
}

class MilkDecorator {
  constructor(coffee) { this.coffee = coffee; }
  cost() { return this.coffee.cost() + 2; }
}

const simpleCoffee = new Coffee();
const milkCoffee = new MilkDecorator(simpleCoffee);
console.log(milkCoffee.cost()); // 7

Itt a MilkDecorator hozzáadja a tej árát az alap kávéhoz.