Enable components to react to the occurrence of particular events in other components without knowledge of one another, while allowing dynamic participation of components and dynamic introduction of new kinds of events.
See also: Multi Caster, Observer Pattern, Mediator Pattern
See original on c2.com