Junior — Middle
Моъйинед, ки шумо дар лоиҳаҳои худ паттерни Prototype-ро истифода бурдаед, метавонед дар бораи он нақл кунед?
sobes.tech AI
Ҷавоб аз AI
Модели прототип истифода мешавад, вақте ки лозим аст, ки объектҳои нав тавассути клонсозии объектҳои аллакай мавҷудбуда эҷод карда шаванд, махсусан агар эҷоди объект "аз сифр" гарон ё мураккаб бошад.
Дар яке аз лоиҳаҳои ман, ман прототипро барои эҷоди конфигурасияҳои зиёди объектҳо бо каме фарқиятҳо истифода кардам. Ба ҷои пур кардани ҳама майдонҳо дастӣ, ман усули clone()-ро татбиқ кардам, ки нусхаи объектро месозад ва пас танҳо параметрҳои заруриро тағир медиҳад.
Масалан дар Java:
public class Config implements Cloneable {
private String param1;
private int param2;
public Config(String p1, int p2) {
this.param1 = p1;
this.param2 = p2;
}
@Override
protected Config clone() throws CloneNotSupportedException {
return (Config) super.clone();
}
}
// Истифода:
Config оригинал = new Config("default", 10);
Config нусха = оригинал.clone();
нусха.param2 = 20; // танҳо он чизеро, ки лозим аст, тағир медиҳем
Ин суръатбахшии эҷоди объектҳо ва кам кардани такрори коди кӯмак мекунад.