Sobes.tech
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

По този начин, капсулирането помага да се контролира достъпът до данните, увеличава сигурността и улеснява поддръжката на кода.