Sobes.tech
Junior

Cum înțelegi sensul încapsulării în programare?

sobes.tech AI

Răspuns de la AI

Încapsularea este un mecanism care permite ascunderea implementării interne a unui obiect și oferirea accesului la datele și comportamentul său doar prin intermediul unei interfețe definite.

Principiile de bază ale încapsulării:

  • Ascunderea datelor: Accesul direct la starea internă a obiectului este restricționat. Datele sunt accesibile doar prin metodele obiectului.
  • Furnizarea unei interfețe: Interacțiunea cu obiectul se face printr-un set de metode publice care definesc modul în care poate fi utilizat obiectul fără a cunoaște structura sa internă.

Avantajele încapsulării:

  • Modularitate: Părțile individuale ale sistemului devin independente și pot fi dezvoltate, testate și modificate separat.
  • Flexibilitate: Implementarea internă a obiectului poate fi schimbată fără a afecta codul care îl utilizează, cu condiția păstrării interfeței.
  • Securitatea datelor: Previne modificările incorecte ale stării obiectului din exterior.
  • Simplificarea codului: Ascunzând complexitatea implementării, încapsularea face ca codul să fie mai ușor de înțeles și de întreținut.

Exemplu de încapsulare în JavaScript:

class Counter {
  #count; // Câmp privat, accesibil doar în interiorul clasei

  constructor(initialCount = 0) {
    this.#count = initialCount;
  }

  // Metodă publică pentru a crește contorul
  increment() {
    this.#count++;
    console.log('Contor actual:', this.#count);
  }

  // Metodă publică pentru a obține valoarea curentă a contorului
  getCount() {
    return this.#count;
  }
}

const myCounter = new Counter(5);
myCounter.increment(); // Ieșire: Contor actual: 6
console.log(myCounter.getCount()); // Ieșire: 6

// Încercarea de a accesa direct câmpul privat va cauza o eroare
// console.log(myCounter.#count);