Skip to content
Snippets Groups Projects
Commit 0c83713a authored by Fabien Delecroix's avatar Fabien Delecroix
Browse files

termes

parent a1f67598
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Dans ce TP, vous allez vous familiariser avec le patron de conception observateurs/observable. 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. 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 ## Partie 1 : Le patron Observateurs / Observable
...@@ -59,7 +59,7 @@ public abstract class Observable { ...@@ -59,7 +59,7 @@ public abstract class Observable {
## Partie 2 : Application ## 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. 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 : 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 ...@@ -77,7 +77,8 @@ ainsi que d'une classe Objectif, chargée d'afficher au fur et à mesure la prog
```mermaid ```mermaid
classDiagram classDiagram
class Objectif { class Objectif {
-nbRestant : int #nbRestant : int
#nom : String
} }
Objectif : +do() void Objectif : +do() void
Objectif : +isDone() boolean Objectif : +isDone() boolean
...@@ -116,9 +117,10 @@ InputStream is = new ByteArrayInputStream(test.getBytes()); ...@@ -116,9 +117,10 @@ InputStream is = new ByteArrayInputStream(test.getBytes());
``` ```
### Autres objectifs ### 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. 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 **Analyseur**. 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 des tests. Là encore, vous réaliserez un Main et des tests.
Voici un exemple de comportement attendu :
<pre> <pre>
>>>Objectif 1 - nombre de lignes : encore 3<<< >>>Objectif 1 - nombre de lignes : encore 3<<<
...@@ -140,7 +142,7 @@ Fin de la saisie. ...@@ -140,7 +142,7 @@ Fin de la saisie.
</pre> </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. 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 ## Partie 3 : Propriétés observables
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment