#Observer Pattern
The Observer Pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependencies are notified and updated automatically.
Design Principles:
- Strive for loosely coupled designs between objects that interacts - Loosely coupled designs allow us to build flexible OO systems that can handle change because they minimise the interdependency between objects.