NSY102 - Free

La politique régissant l'accréditation en tant qu'observateur aux réunions de la ...
la Plateforme, et tient ses conclusions à la disposition du Bureau pour examen.

Part of the document


NFP121
Programmation avancée.
Session de Février 2010-durée : 2 heures Tous documents papiers autorisés Cnam / Paris Sommaire :
Question 1 (8 points) : Patron observateur
Question 2 (12 points) : Patron Publish-Subscribe Question1 (8 points) : Patron Observateur
Ce patron permet à un objet (Observer) d'observer un autre objet
(Observable). Pour cela l'observable autorise les observateurs à
s'inscrire auprès de lui. L'observable gère la liste des observateurs
inscrits et lors d'un changement de son état interne, notifie à tous
les observateurs inscrits qu'une mise à jour a eu lieu. L'architecture retenue des classes pour cette question est la
suivante :
[pic]
L'interface ObservableI contient les opérations
. d'ajout d'un observateur (addObserver),
. de retrait d'un observateur (removeObserver),
. de notification (notifyObservers) aux observateurs inscrits,
. d'obtention de la liste des observateurs actifs
(activeObservers),
. d'obtention de la liste des observateurs inactifs
(inactiveObservers).
import java.io.Serializable;
import java.util.List;
public interface ObservableI extends Serializable{
/** Ajout d'un observateur.
* @param obs l'observateur
*/
public void addObserver(Observer obs);
/** Retrait d'un observateur.
* @param obs l'observateur
* @return true si le retrait a réussi, false autrement
*/
public boolean removeObserver(Observer obs);
/** Notification.
* Tous les observateurs inscrits sont notifiés,
* si une exception se produit lors d'une mise à jour,
* l'observateur ayant levé cette exception est placé
* dans la file des inactifs
*/
public void notifyObservers();
/** Obtention de la liste des observateurs actifs.
* @return la liste
*/
public List