Mediator

Origin: GoF 95
Reason: To coordinate the change of state of several objects.
Synopsis: Place the logic to change the state of all the objects in a separate object, the Mediator.
Example: A dialog box receives information to plan and reserve a banquet. Several objects contribute to this process. Changing the state of one object affects the state of other objects.
Solution:
Colleagues A set of heterogeneous classes whose states affect each other behaviors.
EventListeners Classes that make Colleagues unaware of the Mediator. A Colleague tells its EventListener of a change of state; the EventListener tells the Mediator.
Mediator Class that implements the logic to execute when a Colleague changes state.
See also: Adapter (used by the Mediator to receive event notifications)
Interface (used to keep the Colleagues independent of the Mediator)
Observer (alternative to the Mediator)