6.2.5 Why we Use the Observer Pattern