Шаблон проектирования - Посредник
Определение
Посредник — это поведенческий паттерн проектирования, который позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник.
Пример:
Пилоты садящихся или улетающих самолётов не общаются напрямую с другими пилотами. Вместо этого они связываются с диспетчером, который координирует действия нескольких самолётов одновременно. Без диспетчера пилотам приходилось бы все время быть начеку и следить за всеми окружающими самолётами самостоятельно, а это приводило бы к частым катастрофам в небе.
Суть
Реализация примера на github.com.
Объекты Helicopter и Airplane оповещают Dispatcher о действиях. Dispatcher дает команду остальным компонентам.
$mediator = new Dispatcher();
$c1 = new Helicopter();
$c2 = new Airplane();
$mediator->addComponent($c1);
$mediator->addComponent($c2);
echo "Client triggers operation landTo1.\n";
$c1->landTo1();
Таким образом, компоненты не общаются между собой, а делают это через посредника.