Sobes.tech
Junior

¿En qué consiste el concepto de encapsulación en programación?

sobes.tech AI

Respuesta de la IA

El sentido de la encapsulación en programación consiste en combinar datos y métodos para trabajar con ellos en un solo objeto y ocultar la implementación interna del mundo exterior. Esto permite controlar el acceso a los datos, protegerlos de cambios incorrectos y simplificar el mantenimiento del código, haciéndolo más modular y flexible.

Las principales ventajas de la encapsulación:

  • Ocultación de datos: El estado interno del objeto solo es accesible a través de métodos específicos (getters y setters).
  • Control de acceso: Se puede aplicar lógica de validación al modificar los datos.
  • Reducción de acoplamiento: Los cambios en la implementación interna de un objeto no requieren cambios en otros objetos que lo utilizan, siempre que la interfaz de interacción permanezca igual.
  • Mejora en la mantenibilidad: El código se vuelve más comprensible y fácil de modificar.

Ejemplo en JavaScript:

class User {
  constructor(name, age) {
    this._name = name; // Propiedad privada (convención, no obligatoria en JS hasta campos privados)
    this._age = age;
  }

  getName() { // Getter para name
    return this._name;
  }

  getAge() { // Getter para age
    return this._age;
  }

  setAge(newAge) { // Setter para age con validación
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("La edad debe ser mayor que cero.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Acceso a través del getter: Ivan
user.setAge(31); // Cambio a través del setter con validación
console.log(user.getAge()); // Acceso a través del getter: 31
user.setAge(-5); // Error al intentar un cambio incorrecto