Observer
The Observer pattern, quite simply, lets one component notify other components that something happened. The pattern is used all over the place: for example, when binding data to UI, we can program domain objects such that when they change, they generate notifications that the UI can subscribe to and update the visuals.