Sobes.tech
Junior — Middle

Dekorator naqshining nima ekanligini va uning asosiy ma'nosi nima ekanligini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

«Dekorator» naqshili ob'ektlarga dinamik tarzda yangi mas'uliyatlar qo'shish imkonini beradi, ularni boshqa dekorator ob'ektlariga o'rab, asl sinfni o'zgartirmasdan.

Asosiy g'oya — ayni interfeysni amalga oshiradigan va asl ob'ekt metodlarini chaqirishdan oldin yoki keyin qo'shimcha logika bajarishi mumkin bo'lgan muqovaga ega bo'lish.

Bu, funksionallikni meros olish yoki mavjud kodni o'zgartirmasdan kengaytirish kerak bo'lsa, foydalidir.

Psevdo-kodda misol:

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

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

Shu tarzda, dekorator ob'ektlarga ish vaqtida funksionallikni moslashuvchan tarzda qo'shishga imkon beradi.