The GoF design patterns book defines Observer design pattern as follows - 'Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.'