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

interface fournie complète + question plus tôt

parent 3ae7402c
No related branches found
No related tags found
No related merge requests found
...@@ -13,6 +13,18 @@ Il utilise pour ça sa propre méthode « notifyObservers() ». ...@@ -13,6 +13,18 @@ Il utilise pour ça sa propre méthode « notifyObservers() ».
![Diagrame UML du patron Observateur/Observé](documentation/umlObserverObservable.png) ![Diagrame UML du patron Observateur/Observé](documentation/umlObserverObservable.png)
**Q1.1** Compléter la classe abstraite Subject de manière à pouvoir disposer du mécanisme Observateur/Observé.
```java
package fr.univlille.iut.r304.tp4.q1;
public abstract class Subject {
public void attach(Observer obs)
public void detach(Observer obs)
public void notifyObervers()
public void notifyObervers(Object data)
}
```
Nous utiliserons ce pattern pour implémenter un (des) chronomètre(s). Nous utiliserons ce pattern pour implémenter un (des) chronomètre(s).
La classe suivante implémente un thread simple qui produit un évènement toutes les secondes. La classe suivante implémente un thread simple qui produit un évènement toutes les secondes.
Ce TimerThread permettra de mettre à jour des horloges qui afficheront l’heure. Ce TimerThread permettra de mettre à jour des horloges qui afficheront l’heure.
...@@ -45,23 +57,6 @@ Commencez avec deux chronomètres console qui affiche simplement leur nom et le ...@@ -45,23 +57,6 @@ Commencez avec deux chronomètres console qui affiche simplement leur nom et le
Note: Des tests sont fournis dans le projet pour que vous vous assuriez que vos classes fonctionnent comme attendu. Note: Des tests sont fournis dans le projet pour que vous vous assuriez que vos classes fonctionnent comme attendu.
Respectez les noms des packages, classes et méthodes Respectez les noms des packages, classes et méthodes
**Q1.1** Implémentez la classe Subject et l’interface Observer
```java
package fr.univlille.iut.r304.tp4.q1;
public abstract class Subject {
public void attach(Observer obs)
public void detach(Observer obs)
public void notifyObervers()
public void notifyObervers(Object data)
}
public interface Observer {
public void update(Subject subj);
public void update(Subject subj, Object data);
}
```
**Q1.2** Pour l’implémentation de Timer, on s’aperçoit d’un problème d’héritage. **Q1.2** Pour l’implémentation de Timer, on s’aperçoit d’un problème d’héritage.
Quelles sont les deux classes dont ce Timer devrait hériter ? Quelles sont les deux classes dont ce Timer devrait hériter ?
......
...@@ -2,4 +2,7 @@ package fr.univlille.iut.r304.tp4.q1; ...@@ -2,4 +2,7 @@ package fr.univlille.iut.r304.tp4.q1;
public interface Observer { public interface Observer {
public void update(Subject subj);
public void update(Subject subj, Object data);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment