Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.
See also:FacadePattern, DesignPatternsNotes:
Real world implementations of MediatorPattern tend to result in a growing number of mediated interfaces.
When using MediatorPattern be careful to ensure that it does not become an (expensive) substitute for global variables and all the bad things that come with that AntiPattern.
Consider using FacadePattern judiciously to reduce the interfaces that need to be shared around.
Example Implementations at CodeProject: