C ) Любой запрос получает контроллер.
M ) Если ему нужно каким-либо образом взаимодействовать с данными, он обращается к модели.
V ) Если ему нужно представить результат в каком-либо виде он обращается к виду.
Когда ответ сформирован контроллер отдает его обратно.
ЗЫ: Один контроллер может обращаться к другому контроллеру.
Есть концепция, а есть реализация. То как вы реализуете концепцию зависит от вас, и как её реализовывать решать тоже вам. Если же вы хотите разобраться в данной концепции глубже - смотрите как она реализована в уже готовых проектах, например MVC фреймворках.
Владислав Турчинский: Контроллер это не класс а один из компонентов MVC, реализация которого может быть как одним классом так и несколькими, причем они могут переадрисовываться друг на друга... т.е. взаимодействоать между собой.
Владислав Турчинский: "если же в роутере не назначен специфический маршрут - роутер просто попытается вызвать тот, что по умолчанию. " и "ну можно не выделять роуты, и будут срабатывать маршруты по умолчанию" не одно и то-же. 1й раз вы говорите что Роуты можно не выделять из MVC 2й раз вы утверждаете что роуты - обязательный компонент MVC. вы определитесь.
" это тоже компоненты современных web MVC фреймворков" а есть несовременные? Если бы роуты были обязательным компонентом MVC то это был бы не MVC а MVCR.
FYI: MVC прекрасно может обходиться и без роутов, и контроллер как-раз выполняет эту функцию по-умолчанию.