Examine Problems that Require the Mediator Pattern.
Examine Problems that Require the Mediator Pattern
Out of all the design patterns, the Mediator pattern has probably been reinvented more times than any other.
It is an absolutely essential pattern any time you have many different components of a system which have to maintain a consistent state as a whole.
It is used by any system in which many different parts must work together efficiently while sharing the same basic information.
We are going to use the Mediator pattern to manage the traffic lights in our traffic system.
The SlideShow below illustrates the motivation of the Mediator pattern specific to our project:
Alternative Images to the SlideShow.
Traffic Light Mediator Gallery
As you add more complicated intersections with turn signals, turning lanes, and more, the complexity grows.
You need a way of untangling all these connections. The Mediator pattern provides it.
In general, object-oriented applications consist of a set of objects that interact with each other for the purpose of providing a service.
This interaction can be direct (point-to-point) as long as the number of objects referring to each other directly is very low.
Figure 1 depicts this type of direct interaction where ObjectA and ObjectB refer to each other directly.
As the number of objects increases, this type of direct interaction can lead to a complex maze of references among objects (Figure 2), which affects the maintainability of the application.
Also, having an object directly referring to other objects greatly reduces the scope for reusing these objects because of higher