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.