Sobes.tech
Junior — Middle

Dekorator nümunəsinin nə olduğunu və onun əsas mənasının nə olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

«Dekorator» nümunəsi obyektlərə dinamik olaraq yeni vəzifələr əlavə etməyə imkan verir, onları digər dekorator obyektləri ilə əhatə etməklə, orijinal sinfi dəyişdirmədən.

Əsas fikir, eyni interfeysi həyata keçirən və orijinal obyektin metodlarını çağırmadan əvvəl və ya sonra əlavə məntiq icra edə bilən bir örtük yaratmaqdır.

Bu, funksionallığı irsi və ya mövcud kodu dəyişdirmədən genişləndirmək istədiyiniz zaman faydalıdır.

Pseudo-kod nümunəsi:

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

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

Bu şəkildə, dekorator obyektlərə işləmə zamanı çevik şəkildə yeni funksionallıq əlavə etməyə imkan verir.