Sobes.tech
Junior — Middle

Оё метавонед шарҳи кунед, ки паттерни ороишӣ чӣ гуна аст ва маънои асосии он чист?

sobes.tech AI

Ҷавоб аз AI

Модели «Декоратор» имкон медиҳад, ки ба объектҳо дар динамикӣ масъулиятҳои нав илова карда шаванд, онҳоро дар дигар объектҳои декоратор пӯшондан, бе тағир додани синфи аслӣ.

Асосии идея ин аст, ки як пӯшиш дар атрофи объект сохта шавад, ки ҳамон интерфейсро иҷро мекунад ва метавонад пеш ё пас аз даъвати методҳои объектҳои аслӣ логикаи иловагӣ иҷро кунад.

Ин ба шумо кӯмак мекунад, вақте ки мехоҳед функсионалиро бе насле ва тағир додани коди мавҷуда васеъ кунед.

Масалан дар псевдокод:

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

// Истифода:
Coffee coffee = new MilkDecorator(new SimpleCoffee());
System.out.println(coffee.cost()); // 7

Инчунин, декоратор имкон медиҳад, ки функсионалиятро дар вақти иҷроӣ боэътимод ва флексибл илова кардан мумкин аст.