Sommaire

Exemple en Java

Nous reprenons l’exemple de la figure 24.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; 
 
  public String getDescription() 
  { 
    return ...