A large proportion of the code we write has different components (classes) that communicate with one another through direct references or pointers. However, there are situations when you don’t 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 pointers or references because those can go stale and the last thing you want is to dereference a nullptr.
The Mediator design pattern is a mechanism for facilitating communication between the components. Naturally, the mediator itself ...