Model - содержит методы, которые как-то манипулируют данными (добавляют, изменяют и возвращают данные из БД и т.д.). Полностью независимый объект, которые не о ком не знает...
View - служит для отображения данных, и нечего не знает о существовании каких-то там моделей и контроллеров
Controller - знает о View и о Model (или об их интерфейсах) и, например, может вытащить данные из модели и отобразить их с помощью вида.
Пример контроллера:
<Тип> data = m_model.getData(); // получаем данные из модели
m_view.show(data); // отображаем их в представлении