Все хотят сравнить его с клеем или мышцей или чем-то еще, но это плохо подходит для любого из них, потому что это переводчик между моделью и видом. Мышцы не служат входной функции, только выход, нервы и чувства обеспечивают вход в эту аналогию. Клей просто придерживается двух вещей вместе, это не меняет их.
Уровень контроллера в MVC отвечает за вывод данных из модели и перевод ее в форму, готовую для просмотра, чтобы отображать ее. Прекрасным примером этого являются три разные страницы, все представленные данные в той же (или очень похожей) форме, но отображаемые данные поступают из самых разных источников. В каждом из этих случаев может использоваться один и тот же код представления, однако контроллер - тот, кто знает, чтобы вызывать разные функции в модели, чтобы отобразить данные и поместить их в нужное имя коллекции, чтобы представление могло находить и отображать он, , хотя представление фактически не знает, что он отображает.
Но это не единственная задача для уровня контроллера, поскольку он также должен выполнять перевод запросов пользователя в действия над моделью. Пользователь щелкнул ссылку или набрал что-то в поле или сдвинул ползунок, и это может привести к одному или нескольким действиям модели. Это не должно быть фактической бизнес-логикой принятия решений, но если, например, у вас был флажок, который сказал «делать это три раза», но у модели была функция только что-то сделать один раз, контроллер будет отвечать за вызов функции модели три чтобы выполнить действие.
Если у вас есть аналогия, я бы использовал ответ Майкла «мозги».
Я думаю, что это бедная метафора. Модель должна выполнять необходимые задачи. Контроллер более сродни скелету ИМХО. –