Observer / Pub-Sub PatternDefine a one-to-many dependency where when one object changes state, all dependents are notified