Junior — Middle
Можете ли да обясните концепцията за инкапсулация в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Капсулирането е принцип на обектно-ориентираното програмиране, който се състои в обединяването на данни (свойства) и методи, работещи с тези данни, вътре в един обект или клас. То позволява скриване на вътрешното състояние на обекта и предоставяне на достъп до него само чрез определени методи (гетъри и сетъри), което защитава данните от пряка промяна отвън.
Например, в JavaScript може да се създаде частно свойство с помощта на символ или да се използва конвенция с долно тире:
class User {
#password; // частно поле
constructor(name, password) {
this.name = name;
this.#password = password;
}
checkPassword(input) {
return input === this.#password;
}
}
const user = new User('Alice', '12345');
console.log(user.name); // Alice
console.log(user.#password); // Грешка, достъп забранен
console.log(user.checkPassword('12345')); // true
По този начин, капсулирането помага да се контролира достъпът до данните, увеличава сигурността и улеснява поддръжката на кода.