Encapsulation

L'encapsulation est un concept clé de la programmation orientée objet (POO) qui consiste à regrouper les données (les attributs d'une classe) et les méthodes qui les manipulent au sein d'une même entité, appelée classe. L'objectif principal de l'encapsulation est de cacher les détails d'implémentation des données et de fournir une interface d'accès contrôlée à ces données.

En Dart, l'encapsulation est généralement mise en œuvre en définissant les attributs d'une classe comme des champs privés et en fournissant des méthodes publiques (getters et setters) pour accéder et modifier ces attributs. Voici un exemple illustrant l'encapsulation en Dart :

class Personne {
  String _nom; // Attribut privé

  Personne(this._nom); // Constructeur

  // Getter pour l'attribut _nom
  String get nom => _nom;

  // Setter pour l'attribut _nom
  set nom(String nom) => _nom = nom;

  // Méthode publique
  void sePresenter() {
    print("Bonjour, je m'appelle $_nom.");
  }
}

void main() {
  var personne = Personne("Alice");
  print(personne.nom); // Accès à l'attribut _nom à l'aide du getter
  personne.nom = "Bob"; // Modification de l'attribut _nom Ă  l'aide du setter
  personne.sePresenter(); // Appel d'une méthode publique
}

Dans cet exemple, l'attribut _nom de la classe Personne est déclaré comme privé en le préfixant avec _. Les méthodes get nom et set nom sont utilisées pour fournir un accès contrôlé à cet attribut. La méthode sePresenter est une méthode publique qui peut être appelée de l'extérieur de la classe.

L'encapsulation permet de protéger les données d'une classe contre toute modification non autorisée et de garantir une utilisation cohérente et sécurisée de ces données par le biais de méthodes publiques. Cela favorise également la réutilisation du code et la maintenance facilitée, car les détails d'implémentation peuvent être modifiés sans affecter le code client.

Last updated