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.