Observer
Intent
Define a dependency between objects so that when one object changes state then all its dependents are notified
Applicability
- When a change to one object requires changing others
- Decouple notifier from other objects
while (e.hasMoreElements())