Le CompteurRapide gère la vitesse d'incrémentation et délègue la
gestion de l'état à un Compteur.
class CompteurRapide {
private int vitesse;
private Compteur lent;
// constructeur
...
int getEtat() {
return lent.getEtat(); // délègue la gestion de l'état
}
void incrementer() {
// Gère la vitesse d'incrémentation
for(int i = 0; i < this.vitesse; i++) {
// délègue l'incrémentation
lent.incrementer();
}
}
}
A ce stade, il est bon de noter qu'il serait facile de créer sur le même modèle
une classe CompteurRapideNBits qui fait le même travail
pour un CompteurNBits. Cependant, on peut remarquer
que cette classe doit pouvoir fonctionner en combinaison avec toute classe qui
possède une méthode getEtat() et une méthode
incrémenter.
Source : CompteurRapide.java