package devoirobservateur; import java.util.*; public abstract class Subject { private ArrayList observateurs; public Subject() { observateurs = new ArrayList(); } /** * Ajoute un observateur à la liste des observateurs pour cet objet. * @param o */ public void attacher(Observateur o) { observateurs.add(o); } /** * Enlève un observateur de la liste des observateurs pour cet objet. * @param o */ public void détacher(Observateur o) { observateurs.remove(o); } /** * Méthode privée qui diffuse un changement aux observateurs, * selon le patron Observateur */ private void informerObservateurs() { /* * Traverser la liste en appelant la méthode notifier() de chaque * observateur */ for (Iterator obsIterateur = observateurs.iterator(); obsIterateur.hasNext();) { Observateur observateur = obsIterateur.next(); observateur.notifier(); } } public void Notify() { informerObservateurs(); } }