Sobes.tech
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