A large proportion of the code we write has different components (classes) communicating with one another through direct references. However, there are situations when you don’t necessarily want objects to be aware of each other’s presence. Or perhaps you do want them to be aware of one another, but you still don’t want them to communicate through references, because as soon as you keep and hold a reference to something, you extend that object’s lifetime beyond what might originally be desired (unless it is a WeakReference, of course).
The Mediator is a mechanism for facilitating ...