При поиске объяснений и руководств MVC в Google я просмотрел все ссылки на первых 4 страницах (поисковый запрос: mvc php) и сделал заметки. Я обнаружил, что MVC объясняется четырьмя различными способами. Я понимаю, что теоретически все они сводятся к одному и тому же, но, видя, что большинство шаблонов в программировании получают разные имена, мне было интересно, почему эти 4 совершенно разных шаблона все знают под тем же именем. (имея в виду, что 5-й шаблон с использованием той же методологии называется MVP). В 4 модели я нашел это (надеюсь, что это попадается правильно, как я безнадежен в ASCII искусства):Что такое «настоящий» шаблон MVC?
U --> C --> M --> V --> U
V --> U
^
|
U --> C <-> M
U
^
|
U --> C --> V <-> M
M <-> V --> U
^ ^
| |
U --> C ----|
Где U = Пользователь
У вас есть конкретная проблема с одним или несколькими из этих шаблонов? Можете ли вы спросить об этом? В противном случае это просто семантика. –
Второе изображение имеет для меня наибольший смысл. Третий и четвертый выглядят как бессмыслица, если только они не относятся к конкретной структуре, которая использует модели как DTO-модели viewmodel или что-то в этом роде. Это действительно самая большая переменная, которую я нахожу в интерпретации шаблона. Некоторые люди думают, что «модели» - это объекты с ограниченным представлением, отправленные на представление. Другие считают, что «модели» - это богатые объекты домена, которые представляют собой бизнес-логику. Я в последнем лагере. – David
@RobertHarvey: Нет конкретных примеров или проблем. И я не понимаю, как это просто «семантика»? Каждой модели представляется мне другой способ реализации. Если эти 4 различия являются семантическими различиями, то MVP и MVVM также являются просто семантическими различиями? – Evert