Eu trabalho com o ASP.NET MVC (e outras implementações de MVC baseadas na Web) com bastante frequência, mas é algo de que nunca tive certeza: O controlador e a exibição devem se comunicar?
É claro que o controlador deve escolher qual visualização usar, mas o que quero dizer com isso deve passar os dados para a visualização? Na minha opinião, se a visualização está esperando dados do controlador, eles estão efetivamente vinculados como um par (controlador, visualização). Em vez disso, normalmente tenho a visão de comunicar com o modelo e ser independente de qualquer controlador.
Eu tenho a abordagem correta ou é este o caso de não haver uma resposta correta? A resposta muda quando se trabalha na web versus outros ambientes? A resposta muda quando você tem o conceito de uma exibição fortemente tipada (como no ASP.NET MVC) ou não?