Junior
Care este sensul încapsulării în programare?
sobes.tech AI
Răspuns de la AI
Sensul încapsulării în programare constă în combinarea datelor și a metodelor pentru a lucra cu acestea într-un singur obiect (entitate) și în ascunderea implementării interne față de lumea exterioară. Acest lucru permite controlul accesului la date, protejarea lor împotriva modificărilor incorecte și simplificarea întreținerii codului, făcându-l mai modular și flexibil.
Principalele avantaje ale încapsulării:
- Ascunderea datelor: Starea internă a obiectului este accesibilă doar prin metode specifice (getters și setters).
- Controlul accesului: Se poate aplica logică de validare la modificarea datelor.
- Reducerea cuplajului: Schimbările în implementarea internă a unui obiect nu necesită modificări în alte obiecte care îl utilizează, atâta timp cât interfața de interacțiune rămâne neschimbată.
- Îmbunătățirea întreținerii: Codul devine mai ușor de înțeles și de modificat.
Exemplu în JavaScript:
class User {
constructor(name, age) {
this._name = name; // Proprietate privată (convenție, nu obligatorie în JS până la câmpurile private)
this._age = age;
}
getName() { // Getter pentru nume
return this._name;
}
getAge() { // Getter pentru vârstă
return this._age;
}
setAge(newAge) { // Setter pentru vârstă cu validare
if (newAge > 0) {
this._age = newAge;
} else {
console.error("Vârsta trebuie să fie mai mare decât zero.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // Acces prin getter: Ivan
user.setAge(31); // Modificare prin setter cu validare
console.log(user.getAge()); // Acces prin getter: 31
user.setAge(-5); // Eroare la încercarea de modificare incorectă