... модель напрямую отвечает на просмотр для генерации html ...
А что если завтра вам понадобится сгенерировать JSON?А потом XML?И еще 10 форматов?Будете ли вы обновлять модель каждый раз?
Модель, представление и контроллер имеют разные обязанности.
- Модель - бизнес-логика.Сохраняет и загружает данные.
- Просмотр - отображает данные в определенном формате.
- Контроллер - посредник между ними.Анализирует запросы, выполняет аутентификацию / авторизацию, запрашивает модель для данных, вызывает соответствующие представления с этими данными.
Не должно быть бизнес-логики в представлениях, рендеринге в моделях и т. Д. Это помогает лучше, чищеcode.
В моем гипотетическом примере вам просто нужно добавить представление, которое может отображать данные в формате JSON.И, возможно, добавить одну или две строки в контроллер (часто вам не нужно).Модель оставлена без изменений.Его заботой является постоянство данных, а не представление данных.