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
Այս կերպ, դեկորատորը թույլ է տալիս ճկուն կերպով ավելացնել ֆունկցիոնալություն օբյեկտներին՝ գործարկման ժամանակ։