Comparons la classe Compteur avant et après
avoir inséré le mécanisme de notification.
class Compteur implements ICompteur {
private int etat;
public int getEtat() {
return this.etat;
}
public void incrementer() {
this.etat += 1;
this.notifie();
}
void notifie() {
if (this.ecouteur != null)
this.ecouteur.miseAJour();
}
private ICompteurListener ecouteur;
void addCompteurListener(ICompteurListener nouveau) {
this.ecouteur = nouveau;
}
}
On constate qu'on a ajouté un morceau de code qui est indépendant de la façon
de compter. On aurait pu faire exactement la même chose sur CompteurModulo.
Ce mécanisme de notification est donc orthogonal à la gestion de l'état, on peut
le dissocier du compteur.