Setteru un getteru priekšrocības OOP JavaScript
Iepriekšējā nodarbībā mēs izveidojām katram īpašumam getteri un setteri. Var rasties jautājums, kāpēc ir vajadzīgi šādi sarežģījumi, jo faktiski tādu pašu efektu var sasniegt, ja padara īpašumus publiskiem, nevis privātiem.
Lieta ir tāda, ka getteriem un setteriem ir priekšrocība: pirms piekļūšanas īpašumam var veikt dažas pārbaudes. Piemēram, mūsu gadījumā, ierakstot vārdu un uzvārdu, mēs varam pārbaudīt, ka jaunā vērtība nav tukša virkne:
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;
}
}
Pārbaudīsim, kā tas darbojas. Vispirms izveidosim klases objektu:
let user = new User;
Tagad mēģināsim ierakstīt korektu vērtību:
user.setName('john');
Un tagad mēģināsim ierakstīt nekorektu:
user.setName(''); // kļūda
Klasē Employee setterī
vecuma veiciet pārbaudi, ka
vecumam jābūt
no 0 līdz 120.
Klasē Employee getterī
algas izdariet tā, lai
lasot algu beigās tās
vērtībai tiktu pievienota dolāra zīme.