Junior
V čem spočívá smysl zapouzdření v programování?
sobes.tech AI
Odpověď od AI
Smysl zapouzdření v programování spočívá v spojení dat a metod pro práci s nimi do jednoho celku (objektu) a v skrytí vnitřní implementace před vnějším světem. To umožňuje kontrolovat přístup k datům, chránit je před nesprávnými změnami a zjednodušit údržbu kódu, čímž se stává modulárnější a flexibilnější.
Hlavní výhody zapouzdření:
- Skrytí dat: Vnitřní stav objektu je přístupný pouze přes určené metody (gettery a settery).
- Kontrola přístupu: Při změně dat lze uplatnit validační logiku.
- Snížení závislosti: Změny v interní implementaci jednoho objektu nevyžadují změny v jiných objektech, které jej používají, pokud zůstane stejný rozhraní.
- Zlepšení údržby: Kód je přehlednější a snáze modifikovatelný.
Příklad v JavaScriptu:
class User {
constructor(name, age) {
this._name = name; // Soukromá vlastnost (konvence, není povinná v JS do privátních polí)
this._age = age;
}
getName() { // Getter pro jméno
return this._name;
}
getAge() { // Getter pro věk
return this._age;
}
setAge(newAge) { // Setter pro věk s validací
if (newAge > 0) {
this._age = newAge;
} else {
console.error("Věk musí být větší než nula.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // Přístup přes getter: Ivan
user.setAge(31); // Změna přes setter s validací
console.log(user.getAge()); // Přístup přes getter: 31
user.setAge(-5); // Chyba při pokusu o nesprávnou změnu