« Patrons de conception/Observateur » : différence entre les versions

Contenu supprimé Contenu ajouté
Mytto (discussion | contributions)
→‎Un exemple en langage Java : Coloration syntaxique
Ligne 16 :
* On crée une classe qui étend ''java.util.Observable'' et dont la méthode de mise à jour des données ''setData'' lance une notification des observateurs (1) :
 
<source lang="java">
class Signal extends Observable {
...
 
void setData(byte[] lbData){
...
notifyObserver(); // (1) notification
}
...
}
}
</source>
}
 
* On crée le panneau d'affichage qui implante l'interface ''java.util.Observer''. Avec une méthode d'initialisation (2), on lui transmet le signal à observer (2). Lorsque le signal notifie une mise à jour, le panneau est redessiné (3).
 
<source lang="java">
class JPanelSignal extends JPanel implements Observer {
...
 
void init(Signal lSigAObserver) {
...
lSigAObserver.addObserver(this); // (2) ajout d'observeur
}
...
}
void update(Observable observable, Object objectConcerne) {
repaint(); // (3) traitement de l'observation
void update(Observable observable, Object objectConcerne) {
}
...
}
repaint(); // (3) traitement de l'observation
</source>
}
}
 
{{Portail informatique}}