Exemple en Java
Nous reprenons l’exemple de la figure 4-8.1. Le code source de la classe Sujet est donné à la suite. Les observateurs sont gérés à l’aide d’une liste.
import java.util.*;
public abstract class Sujet
{
protected List<Observateur> observateurs =
new ArrayList<Observateur>();
public void ajoute(Observateur observateur)
{
observateurs.add(observateur);
}
public void retire(Observateur observateur)
{
observateurs.remove(observateur);
}
public void notifie()
{
for (Observateur observateur: observateurs)
observateur.actualise();
}
}
Le code source de l’interface Observateur est très simple car il ne contient que la signature de la méthode actualise.
public interface Observateur
{
void actualise();
}
Le code source de la classe Vehicule se trouve à la suite. Elle contient deux attributs et les accesseurs en lecture et écriture pour ces deux attributs. Les deux accesseurs en écriture invoquent la méthode notifie.
public class Vehicule extends Sujet
{
protected String description;
protected Double prix; ...