Intent
Define a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated.
AKA
Dependents, Publish-Subscribe
Motivation
To maintain consistency between related objects’ states without tight coupling.
Key Objects
Subject and Observer
Observer will query the subject to synchronize its state with the subject’s state.
Structure

Participants
Related Patterns
Mediator and Singleton
Who maintains a reference to subject?
ConcreteObserver