Sobes.tech
Junior

Ką reiškia inkapsuliacija programavime?

sobes.tech AI

Atsakymas iš AI

Programavimo kapsuliacijos prasmė yra duomenų ir jų apdorojimo metodų sujungimas į vieną objektą (objektą) ir vidinės įgyvendinimo paslėpimas nuo išorinio pasaulio. Tai leidžia kontroliuoti prieigą prie duomenų, apsaugoti juos nuo neteisingų pakeitimų ir supaprastinti kodo priežiūrą, padarant jį moduliškesnį ir lankstesnį.

Pagrindiniai kapsuliacijos privalumai:

  • Duomenų paslėpimas: Objekto vidinė būsena yra prieinama tik per tam tikrus metodus (gautuvus ir nustatytuvus).
  • Prieigos kontrolė: Duomenų keitimo metu gali būti taikoma validacijos logika.
  • Priklausomybės mažinimas: Vieno objekto vidinės įgyvendinimo pakeitimai nereikalauja pakeitimų kituose objektuose, kurie jį naudoja, jei sąsaja išlieka ta pati.
  • Priežiūros gerinimas: Kodas tampa aiškesnis ir lengviau modifikuojamas.

Pavyzdys JavaScript:

class User {
  constructor(name, age) {
    this._name = name; // Privatus savybė (konvencija, ne privaloma JS iki privačių laukų)
    this._age = age;
  }

  getName() { // Gautuvas vardui
    return this._name;
  }

  getAge() { // Gautuvas amžiui
    return this._age;
  }

  setAge(newAge) { // Nustatytuvas amžiui su validacija
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("Amžius turi būti didesnis už nulį.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Prieiga per gautuvą: Ivan
user.setAge(31); // Keitimas per nustatytuvą su validacija
console.log(user.getAge()); // Prieiga per gautuvą: 31
user.setAge(-5); // Klaida bandant netinkamai pakeisti