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