Sobes.tech
Junior — Middle

Dekoratör deseninin ne olduğunu ve temel anlamının ne olduğunu açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

«Dekoratör» deseni, nesnelerin yeni sorumluluklar eklemesine olanak tanır, onları başka dekoratör nesneleriyle sarmalayarak orijinal sınıfı değiştirmeden.

Ana fikir, aynı arayüzü uygulayan ve orijinal nesnenin metodlarını çağırmadan önce veya sonra ek mantık yürütebilen bir sarmalayıcı oluşturmaktır.

Bu, işlevselliği kalıtım veya mevcut kodu değiştirmeden genişletmek istediğinizde faydalıdır.

Örnek pseudo-kod:

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

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

Bu şekilde, dekoratör nesnelere çalışma zamanında esnek şekilde yeni fonksiyonlar eklenmesine olanak tanır.