Sobes.tech
Junior

Mi a kapszuláció fogalma a programozásban?

sobes.tech MI

Válasz az MI-től

A programozásban az enkapszuláció lényege az adatok és azokkal dolgozó módszerek egyesítése egyetlen objektumba (objektumba), valamint a belső megvalósítás elrejtése a külvilág elől. Ez lehetővé teszi az adatokhoz való hozzáférés kontrollálását, védelmét a helytelen módosításoktól, és a kód karbantartásának egyszerűsítését, így modulárisabbá és rugalmasabbá téve azt.

Az enkapszuláció fő előnyei:

  • Adatok elrejtése: Az objektum belső állapota csak meghatározott módszereken keresztül (getterek és setterek) érhető el.
  • Hozzáférés kontroll: Validációs logika alkalmazható az adatok módosításakor.
  • Kötöttség csökkentése: Egy objektum belső megvalósításában bekövetkező változások nem igényelnek más objektumok módosítását, amelyek azt használják, feltéve, hogy az interakciós felület változatlan marad.
  • Karbantartás javítása: A kód könnyebben érthető és módosítható lesz.

Példa JavaScript-ben:

class User {
  constructor(name, age) {
    this._name = name; // Privát tulajdonság (konvenció, nem kötelező JS-ben a privát mezőkig)
    this._age = age;
  }

  getName() { // Getter a névhez
    return this._name;
  }

  getAge() { // Getter az életkorhoz
    return this._age;
  }

  setAge(newAge) { // Setter az életkorhoz validációval
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("Az életkornak nagyobbnak kell lennie nullánál.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Hozzáférés getterrel: Ivan
user.setAge(31); // Módosítás validációval a setterrel
console.log(user.getAge()); // Hozzáférés getterrel: 31
user.setAge(-5); // Hiba a helytelen módosítási kísérletnél