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);