suivant: Une discipline d'abstraction
monter: Exemple : arbres et
précédent: Exemple : arbres et
  Table des matières
  Index
La définition de la classe AVide a cependant un défaut : chaque
invocation du constructeur AVide retourne un nouvel arbre vide,
et tous les arbres vides retournés sont distincts. Ce défaut peut être
corrigé en interdisant l'invocation de ce constructeur (il suffit de le
rendre privé), et en s'assurant de l'existence d'une unique instance de
la classe (ce qui s'obtient en en faisant une variable de classe
arbreVide) : ceci est un exemple de classe
singleton (voir § 3.5). Pour empêcher toute modification
de cette variable, on la rend également privée et on y accède en lecture
seulement par une méthode de classe val :
class AVide implements ArbreBinaire {
private static AVide arbreVide = new AVide();
private AVide(){}
static AVide val() {
return arbreVide;
}
public boolean estVide() {
return true;
}
}
ArbreBinaire a =
new ACons(1,
new ACons(2, AVide.val(), AVide.val()),
new ACons(3, AVide.val(), AVide.val()));
Figure:
Représentation d'un arbre binaire avec l'arbre vide
comme l'unique instance de la classe AVide.
218#218 |
Rene' LALEMENT
2002-11-07