Observer

Das Observer-Pattern definiert eine 1:n-Abhängigkeit zwischen Objekten für automatische Benachrichtigungen.

Wenn sich der Zustand eines Objekts ändert, werden alle abhängigen Objekte automatisch benachrichtigt.

Important

Observer-Komponenten:

  • Subject (Observable): Benachrichtigt Observer
  • Observer: Reagiert auf Änderungen
  • ConcreteSubject: Implementiert Subject
  • ConcreteObserver: Implementiert Observer
Example

// Subject Interface
interface Observable {
   void addObserver(Observer o);
   void notifyObservers();
}

// Observer Interface  
interface Observer {
   void update(String message);
}

// Verwendung: Newsletter-System
Newsletter newsletter = new Newsletter();
newsletter.addObserver(new EmailSubscriber());
newsletter.addObserver(new SMSSubscriber());
newsletter.publishArticle("New Article"); // Benachrichtigt alle

Success

Lose Kopplung zwischen Subject und Observer-Objekten.