Junior
V čom spočíva zmysel zapúzdrenia v programovaní?
sobes.tech AI
Odpoveď od AI
Zmysel enkapsulácie v programovaní spočíva v spojení dát a metód na prácu s nimi do jedného celku (objektu) a v skrytí vnútornej implementácie pred vonkajším svetom. To umožňuje kontrolovať prístup k dátam, chrániť ich pred nesprávnymi zmenami a zjednodušiť údržbu kódu, čím sa stáva modulárnejším a flexibilnejším.
Hlavné výhody enkapsulácie:
- Skrytie dát: Vnútorný stav objektu je prístupný iba prostredníctvom určených metód (getterov a setterov).
- Kontrola prístupu: Pri zmene dát je možné uplatniť validačnú logiku.
- Zníženie závislosti: Zmeny v vnútornej implementácii jedného objektu nevyžadujú zmeny v iných objektoch, ktoré ho používajú, ak rozhranie zostáva nezmenené.
- Zlepšenie údržby: Kód je prehľadnejší a ľahšie modifikovateľný.
Príklad v JavaScripte:
class User {
constructor(name, age) {
this._name = name; // Súkromná vlastnosť (konvencia, nie je povinná v JS do súkromných polí)
this._age = age;
}
getName() { // Getter pre meno
return this._name;
}
getAge() { // Getter pre vek
return this._age;
}
setAge(newAge) { // Setter pre vek s validáciou
if (newAge > 0) {
this._age = newAge;
} else {
console.error("Vek musí byť väčší ako nula.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // Prístup cez getter: Ivan
user.setAge(31); // Zmena cez setter s validáciou
console.log(user.getAge()); // Prístup cez getter: 31
user.setAge(-5); // Chyba pri pokuse o nesprávnu zmenu