Sobes.tech
Junior

U čemu je smisao enkapsulacije u programiranju?

sobes.tech АИ

Одговор од АИ

Svrha enkapsulacije u programiranju je ujedinjavanje podataka i metoda za rad s njima u jedinstveni objekat (entitet) i skrivanje unutrašnje implementacije od spoljnog sveta. To omogućava kontrolu pristupa podacima, zaštitu od nepravilnih promena i pojednostavljenje održavanja koda, čineći ga modularnijim i fleksibilnijim.

Glavne prednosti enkapsulacije:

  • Skrivanje podataka: Interno stanje objekta je dostupno samo putem određenih metoda (gettera i settera).
  • Kontrola pristupa: Logika validacije može se primeniti pri promeni podataka.
  • Smanjenje povezanosti: Promene u unutrašnjoj implementaciji jednog objekta ne zahtevaju promene u drugim objektima koji ga koriste, pod uslovom da interfejs ostane nepromenjen.
  • Poboljšanje održavanja: Kod postaje razumljiviji i lakši za modifikaciju.

Primer u JavaScript-u:

class User {
  constructor(name, age) {
    this._name = name; // Privatna svojstvo (konvencija, nije obavezno u JS do privatnih polja)
    this._age = age;
  }

  getName() { // Getter za ime
    return this._name;
  }

  getAge() { // Getter za starost
    return this._age;
  }

  setAge(newAge) { // Setter za starost sa validacijom
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("Starost mora biti veća od nule.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Pristup putem gettera: Ivan
user.setAge(31); // Promena putem settera sa validacijom
console.log(user.getAge()); // Pristup putem gettera: 31
user.setAge(-5); // Greška pri pokušaju neispravne promene