В традиционном паттерне MVC представление действительно имеет прямую зависимость от модели, как писал www0z0k, но я тоже думаю, что это не идеальное решение.
То, как вы настраиваете свой контроллер, действует как посредник между моделью и представлением, и это, безусловно, очень правильное решение.
Однако, если вы хотите, чтобы представление модели было более прямым (это сэкономит вам некоторый код), вы можете создать центральный диспетчер событий, передать его моделям и позволить им использовать центральный диспетчер событий для отправки своих событий обновления, а затем также передайте центральный диспетчер событий представлению и позвольте представлению прослушивать события, отправляемые моделями напрямую. Таким образом, представление не имеет прямой зависимости от моделей, но все же может прослушивать отправляемые ими события. В этом случае контроллер будет только транслировать события просмотра в модели.
Диаграмма:
http://bit.ly/sTSDVT
Контроллер обновляет модель напрямую, но он также прослушивает центральный диспетчер событий для обновлений из модели (при необходимости) и транслирует их в представление.
Он также слушает для просмотра событий
Модель зависит только от диспетчера событий и использует ее для отправки событий обновления.
Представление зависит только от диспетчера событий и прослушивает события обновления из модели. Он также отправляет свои собственные события. (Для этого можно использовать центральный диспетчер событий, но я бы не рекомендовал его)