Mediator

The life is wonderful due to you can do millions of things.
You can speak with people, play a sport, travel around the world...
Imagine you want to go to Japan... yes, I would go back :)
You can't choose yourself your plane, your seat or your pilot.
You just contact an airplane company and choose your dates and destination.
It's the same for lot of other things.
If you want a laptop, you contact a reseller, not the manufacturer.

THIS IS THE MEDIATOR DESIGN PATTERN !!!

When you will be in the same situation =
The communication between your objects become too much complex.

Don't add new methods in your classes, just make mediators to manage it.

The objects will discuss/work only with the mediator.
All the communication between objects will be encapsulated in the mediator.
Best way:
- Mediators implement interfaces to be able to change the implementations.
- Mediators use interfaces instead of concrete objects to manage several objects.