next up previous contents index
suivant: Privatisation des méthodes et monter: Patterns d'accès et discipline précédent: Discipline d'encapsulation   Table des matières   Index


Contrôle d'accès

L'usage des méthodes d'accès permet également de contrôler la valeur des champs dans les cas où elle doit respecter certaines contraintes. Par exemple, si l'on sait qu'un champ numérique doit être compris entre deux valeurs champMIN et champMAX, la méthode setChamp s'assurera du respect de cette contrainte :

  private static double champMIN=0.0, champMAX=100.0;

  void setChamp(double champ) {
    if (champ < champMIN) 
      this.champ = champMIN;
    else if (champ > champMAX)
      this.champ = champMAX;
    else
      this.champ = champ;
  }

Comme autre exemple, il y a des situations où le nombre de fois qu'un champ est modifié doit être limité (par exemple, la zone d'un lecteur de DVD peut être changée au plus 5 fois) : un champ supplémentaire, évidemment privé, et initialisé implicitement à 0, permet de contrôler le nombre de modifications.

  private static final int N = 5;
  private int champModifié;

  void setChamp(int champ) {
    if (champModifié<N) 
      this.champ = champ;
      champModifié++;
  }

Tous ces exemples constituent des patterns, c'est-à-dire des solutions typiques à des problèmes qui se rencontrent fréquemment, et qui peuvent être adaptées à chaque problème.



Rene' LALEMENT 2002-11-07