Programmation Java Avancée
Master M2 TTT --- Feuille n° 2
Conteneurs, Etats, Enumérations, Prototypes
On imagine un travailleur qui peut avoir trois états: content, fatigué ou
en colère.
On peut lui demander trois choses: travailler, se reposer ou encore
donner de ses nouvelles.
Les réponses à ces requêtes sont indiquées par le tableau suivant:
| |
Repos |
Travail |
Nouvelles |
| Content |
|
Fatigué |
"Ça va !!" |
| Fatigué |
Content |
En colère |
"Bof" |
| En colère |
Content |
AngryException |
"Grrrr" |
Exercice n° 1
Écrire une classe Travailleur contenant des méthodes correspondant
à chaque requête et tester l'application d'une suite de requêtes à un travailleur.
Exercice n° 2
Modifier votre programme de manière à n'utiliser aucun test (ni if, ni switch).
Exercice n° 3
On suppose maintenant que l'on a 10 travailleurs. Limiter le nombre
d'objets créés sachant que deux travailleurs dans le même état se
comportent de la même façon.
Exercice n° 4
On suppose maintenant que chaque travailleur content dispose d'un
certain nombres de points (5 au départ) et que les changements d'états
se font selon le tableau suivant:
| |
Repos |
Travail |
| Content |
pt++ |
pt-- ; si pt=0 fatigué |
| Fatigué |
pt++ ; si pt=3 content |
pt-- ; si pt=-5 en colère |
| En colère |
pt++ ; si pt=5 content |
AngryException |
Modifier votre code de sorte à n'avoir qu'un
seul objet représentant un travailleur pour chaque niveau de force
et à ne créer un tel objet qu'en cas de nécessité.
Exercice n° 5
Plutôt que de donner un ordre à la fois, on souhaite pouvoir effectuer
une suite de requêtes à l'intention d'un travailleur. Mettre à jour
votre code.