Какова фактическая разница между MVC и MVC Model2 - PullRequest
9 голосов
/ 28 апреля 2009

просто я хочу знать, какова реальная разница между MVC и MVC Model2 в разработке

Ответы [ 2 ]

20 голосов
/ 28 апреля 2009

Чтобы проиллюстрировать предыдущие ответы (и добавить объяснение из этой статьи ):

MVC2 - это злоупотребление языком , относящееся фактически к архитектуре JSP Model 2, в отличие от JSP Model 1:

Первой технологией Java для серверной веб-разработки был сервлет .
Написание приложений с сервлетами было очень похоже на написание CGI-приложений на Perl в том смысле, что весь вывод должен был быть построен как строки из кода Java .
Это было очень утомительно и подвержено ошибкам. Веб-дизайнерам, не имеющим опыта работы с Java, также было очень трудно изменить внешний вид страниц, генерируемых сервлетами.

alt text
(источник: javaworld.com )

Потом пришло JSP . JSP, такие как Microsoft ASP и популярный язык сценариев PHP, обрабатывают все как текст шаблона, но позволяют вставлять код Java в теги, называемые скриптлетами и выражениями JSP .
Это позволило людям работать с серверными приложениями так же, как и с другими популярными языками сценариев, но у него было несколько недостатков.

  • Не было разделения интересов.
  • Один скрипт будет содержать код базы данных, бизнес-логику, разметку HTML и любой код JavaScript, необходимый для окончательного отображения страницы.
  • Повторное использование кода было трудным, как и автоматическое тестирование.

Это стало известно как программирование JSP "Model 1".

MVC или шаблон контроллера представления модели был распространенным методом разделения различных проблем в коде графического интерфейса, изобретенным Trygve Reenskaug, работающим над Smalltalk для Zerox.

В какой-то момент стало ясно, что этот метод можно адаптировать к приложениям Java EE для достижения того же уровня разделения.
Это включает в себя запись слоя модели в виде Beans или Plain Old Java Objects (POJO) с использованием сервлетов в качестве контроллера, а затем, когда все тяжелые работы выполнены, переадресация в JSP для форматирования и разметки результатов. Приложения сервлетов / JSP, написанные с использованием архитектуры MVC, стали называться JSP-программированием модели 2.

alt text
(источник: javaworld.com )

Поскольку этот шаблон существовал в другой форме до использования в приложениях сервлетов / JSP, его иногда называли «MVC2». Это имя привело к некоторой путанице, поскольку оно подразумевало, что существует MVC1 для приложений сервлетов, которого нет.
Достаточно просто сказать MVC.

3 голосов
/ 28 апреля 2009

Забавная историческая заметка об условиях ...

[Я бы хотел найти газету ... (Я только что попробовал поискать, но не повезло!)]

Некоторое время назад кто-то написал статью, описывающую два подхода MVC для веб-приложений. В нем у него было две фигуры.

Подписи были "модель 1" и "модель 2".

Они не были заданы как настоящие имена шаблонов (больше как «рисунок 1» и «рисунок 2»), но кто-то прочитал и написал об этом так, как будто это было имя шаблона ...

(у кого есть ссылка?)

VonC хорошо описывает разницу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...