Sobes.tech
Junior

En quoi consiste le concept d'encapsulation en programmation?

sobes.tech IA

Réponse de l'IA

Le sens de l'encapsulation en programmation consiste à combiner des données et des méthodes pour travailler avec elles en un seul objet et à masquer la mise en œuvre interne du monde extérieur. Cela permet de contrôler l'accès aux données, de les protéger contre des modifications incorrectes et de simplifier la maintenance du code, le rendant plus modulaire et flexible.

Les principaux avantages de l'encapsulation :

  • Cacher les données : L'état interne de l'objet n'est accessible que via des méthodes spécifiques (getters et setters).
  • Contrôle d'accès : Il est possible d'appliquer une logique de validation lors de la modification des données.
  • Réduction de la dépendance : Les changements dans l'implémentation interne d'un objet ne nécessitent pas de modifications dans d'autres objets qui l'utilisent, tant que l'interface d'interaction reste inchangée.
  • Amélioration de la maintenabilité : Le code devient plus compréhensible et facile à modifier.

Exemple en JavaScript :

class User {
  constructor(name, age) {
    this._name = name; // Propriété privée (convention, pas obligatoire en JS jusqu'aux champs privés)
    this._age = age;
  }

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

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

  setAge(newAge) { // Setter pour age avec validation
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("L'âge doit être supérieur à zéro.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Accès via le getter : Ivan
user.setAge(31); // Changement via le setter avec validation
console.log(user.getAge()); // Accès via le getter : 31
user.setAge(-5); // Erreur lors de la tentative de modification incorrecte