JavaScript OOP-де сеттерлер мен геттерлердің артықшылықтары
Алдыңғы сабақта біз әрбір қасиет үшін геттер мен сеттер жасадық. Неге мұндай күрделіліктер қажет деген сұрақ туындауы мүмкін, себебі іс жүзінде бірдей әсерге қол жеткізуге болады, егер қасиеттерді жеке емес, жалпыға болатын етіп жасасақ.
Мәселе мынада, геттерлер мен сеттерлердің артықшылығы бар: қасиетке жүгінуге дейін кейбір тексерулерді орындауға болады. Мысалы, біздің жағдайда біз аты мен тегіні жазған кезде жаңа мәннің бос жол емес екенін тексере аламыз:
class User {
#name;
#surn;
setName(name) {
if (name.length > 0) {
this.#name = name;
} else {
throw new Error('name is incorrect');
}
}
setSurn(surn) {
if (surn.length > 0) {
this.#surn = surn;
} else {
throw new Error('surn is incorrect');
}
}
getName() {
return this.#name;
}
getSurn() {
return this.#surn;
}
}
Бұл қалай жұмыс істейтінін тексерейік. Алдымен сынып нысанын жасайық:
let user = new User;
Енді дұрыс мәнді жазуға тынайық:
user.setName('john');
Енді дұрыс емес мәнді жазуға тынайық:
user.setName(''); // қате
Employee сыныбында жасты орнатушыда
жас 0-ден 120-ға дейін болуы керек екенін тексеріңіз.
Employee сыныбында жалақы геттерінде
жалақыны оқыған кезде оның мәнінің соңына
доллар белгісі қосылатындай етіп жасаңыз.