Java pour l'informatique industrielle
Chapitre 1. Introduction aux objets
Chapitre 2. Les structures de contrôle
Chapitre 3. Unifier et réutiliser
3.1. Motivation
3.1.1. Abstraction et réutilisation
3.1.2. Les compteurs
3.2. Exploiter l'orthogonalité
3.3. Les interfaces
3.4. Le polymorphisme
3.5. L'héritage
3.6. Les collections
3.7. Objets et HDL
Chapitre 4. Modèle, Vue et Contrôle
Chapitre 5. Les entrées/sorties
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

3.1.2. Les compteurs

La classe Compteur La classe Compteur5Bits La classe CompteurNBits

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(); } }
Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante