Junior — Middle
Оё метавонед консепти ва истифодаи намунаи Декоратор дар барномасозии объектӣ-равона шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
Модели декоратор имкон медиҳад, ки ба объектҳо масъулиятҳои навро динамикӣ илова кунед, онҳоро дар дигар объектҳои декоратор пӯшонед, бе тағир додани коди манбаъ. Ин махсусан вақте муфид аст, ки мехоҳед функсионалиро бе мерос васеъ кунед.
Масалан: интерфейси асосӣ Нӯшокӣ бо методи нарх(). Шумо метавонед синфи Қаҳва созед ва сипас декораторҳо БоМолоку, БоШакар, ки нархро меафзоянд ва рафторро тағир медиҳанд.
interface Нӯшокӣ {
double нарх();
}
class Қаҳва implements Нӯшокӣ {
public double нарх() { return 5.0; }
}
class ДекораторМолоку implements Нӯшокӣ {
private Нӯшокӣ нӯшокӣ;
public ДекораторМолоку(Нӯшокӣ нӯшокӣ) { this.нӯшокӣ = нӯшокӣ; }
public double нарх() { return нӯшокӣ.нарх() + 1.0; }
}
// Истифода
Нӯшокӣ қаҳва = new Қаҳва();
Нӯшокӣ қаҳваБоМолоку = new ДекораторМолоку(қаҳва);
System.out.println(қаҳваБоМолоку.нарх()); // 6.0
Инчунин, шумо метавонед функсионалиро боэътимодона бо ҳам омехта кунед, бе сохтани бисёр субкласҳо.