diff --git a/README.md b/README.md index 2ce95b4758adad13d4f1107057c9983bd79d91ba..e4da3cfb3230008f9f3d095caf0825bc49b46ea8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Dans ce TP, vous allez vous familiariser avec le patron de conception observateurs/observable. D'abord, en implémentant sa structure et son mécanisme. -Puis, en utilisant cette couche abstraite pour réaliser un petit programme présentant des objectifs sur des saisies utilisateurs. +Puis, en utilisant cette couche abstraite pour réaliser un petit programme qui suit la progression d'objectifs sur des saisies utilisateurs. ## Partie 1 : Le patron Observateurs / Observable @@ -59,7 +59,7 @@ public abstract class Observable { ## Partie 2 : Application -On souhaite réaliser un premier analyseur de texte simple, qui observes les lignes saisies sur l'entrée standard et se met à jour à chaque nouvelle ligne saisie. +On souhaite implémenter un premier suivi d'objectif simple sur un de texte, qui se met à jour à chaque nouvelle ligne saisie sur l'entrée standard. Nous utiliserons le patron observateurs/observé pour l'implémenter. On va donc disposer d'une classe Texte, encapsulant un Scanner pour traiter un flux, ici l'enrée standard : @@ -77,7 +77,8 @@ ainsi que d'une classe Objectif, chargée d'afficher au fur et à mesure la prog ```mermaid classDiagram class Objectif { - -nbRestant : int + #nbRestant : int + #nom : String } Objectif : +do() void Objectif : +isDone() boolean @@ -116,9 +117,10 @@ InputStream is = new ByteArrayInputStream(test.getBytes()); ``` ### Autres objectifs -On va désormais ajouter d'autres objectifs, sur les mêmes saisies, mais vérifiant un critère plus fin, qu'un caractère ait été saisi un certain nombre de fois. -Créer une classe pour ce faire, de manière à mutualiser le plus possible le code avec **Analyseur**. -Là encore, vous réaliserez des tests. +On va désormais ajouter d'autres objectifs, sur les mêmes saisies, mais vérifiant un critère plus fin, qu'un caractère donné ait été saisi un certain nombre de fois. +Créer une classe pour ce faire, de manière à mutualiser le plus possible le code avec **Objectif**, en n'hésitant pas à refactoriser au besoin. +Là encore, vous réaliserez un Main et des tests. +Voici un exemple de comportement attendu : <pre> >>>Objectif 1 - nombre de lignes : encore 3<<< @@ -140,7 +142,7 @@ Fin de la saisie. </pre> Construisez 1 ou 2 autres objectifs sur d'autres critères, par exemple avec un nombre de mots d'une taille donnée ou un nombre de majuscules ou chiffres à atteindre. -Quels sont les avantages de reposer sur le patron Observer/Observable ? +Quels sont les avantages de se baser sur le patron Observer/Observable ? ## Partie 3 : Propriétés observables