Design Principle
- Strive for loosely coupled designs between objects that interact.
Observer Pattern
One Subject + Many Observers = Observer Pattern
The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically.