Si l'on compare les trois compteurs modélisés au chapitre précédent, on constate
que ces trois compteurs ont un état, une méthode incrementer()
et une méthode getEtat(). Pour ces trois classes on s'est
également posée la question d'une incrémentation rapide, incrementer3()
et incrementer(int).
Forts de ces constatations, nous allons unifier, mutualiser ces aspects communs pour éviter
de les reproduire trois fois. Tout d'abord, on s'aperçoit que le mécanisme d'incrémentation rapide
est indépendant de la gestion propre du compteur.
En particulier, le comportement de la méthode incrementer(int)
est indépendant des champs d'une classe, du fait qu'on compte modulo ou non. On dit que ce mécanisme
est orthogonal. La seule chose dont nous avons besoin, en fait, est de
disposer d'une méthode incrementer() mais nous n'avons pas besoin de
connaître son comportement précis.
void incrementer(int nombre) {
for (int i=0; i < nombre; i++) {
this.incrementer();
}
}