Sobes.tech
Junior — Middle

Decorator deseneklemesinin kavramını açıklayın ve yazılım sistemleri tasarımında ne gibi avantajları vardır.

sobes.tech yapay zeka

AI'dan gelen yanıt

Decorator deseni, nesnelerin yeni sorumluluklar eklemesine olanak tanır, onları aynı arayüzü uygulayan diğer dekoratör nesneleriyle sarmalayarak. Bu, işlevselliği genişletmek için kalıtıma bir alternatiftir.

Avantajlar:

  • Esneklik: dekoratörler farklı sıralarda ve miktarlarda birleştirilebilir.
  • Kalıtım yoluyla sınıfların patlamasını önler.
  • Çalışma zamanında davranış eklemeye izin verir.

JavaScript (Node.js) örneği:

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

Burada MilkDecorator, temel kahveye süt maliyetini ekler.