Purpose:
Encapsulate a set of objects which interact with each other. The
benefit to do this is keeping objects from communicating with each
other directly. All the messages between objects should be sent to
mediator at first and then mediator will control and coordinate those
interaction. Also, mediator can handle external interaction request and
decide which object to response the external request.
Structure:
star topology: Mediator class is as a hub which connects to a set of classes (colleague classes).
Difference from Facade Pattern:
Facade differs from Mediator in that it abstracts a subsystem of
objects to provide a more convenient interface. Its protocol is
unidirectional. That is, Facade objects make requests of the subsystem
classes but not vice versa. In contrast, Mediator enables cooperative
behavior that colleague objects don't or can't provide, and the
protocol is multidirectional.
reference:
Gamma, E., R. Helm, R. Johnson, J. Vlissides (1995).
Design Patterns. Addison Wesley. ISBN 0.201-63361-2
http://sern.ucalgary.ca/courses/seng/443/W02/assignments/Mediator/
http://my.execpc.com/~gopalan/design/behavioral/mediator/mediator.html