JavaScript'те ООП'де сеттерлердин жана геттерлердин артыкчылыктары
Алдыңкы сабакта биз ар бир касиет үчүн геттер жана сеттер жасадык. Суроо туулушу мүмкүн, эмне үчүн мындай татаалдыктар керек, анткени чынында эле ошол эле натыйжага жетүүгө болот, эгерде касиеттерди жеке эмес, коомдук кылсак.
Иш мында, геттерлер жана сеттерлер артыкчылыкка ээ: касиетке кайрылуудан мурун кээ бир текшерүүлөрдү жүргүзсө болот. Мисалы, биздин учурда биз атын жана фамилиясын жазууда текшере алабыз, жаңы маани бош сап эмеспи:
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 класстын эмгек акы геттеринде
эмгек акы окулганда анын маанисинин аягына
доллар белгиси кошулушу үчүн кылыңыз.