Я замечаю 2 разных «вкуса» MVC:
1) «Оригинальный» MVC, где Модель общается напрямую с View 2) «Apple Cocoa» MVC, где Контроллер использует шаблон Mediator и Модель иПредставление никогда не связывается напрямую
Из текста ссылки :
Цель MVC состоит в том, чтобы, разъединяя модели и представления, уменьшить сложность архитектурного проектирования иповысить гибкость и удобство обслуживания кода.
Это имеет для меня большой смысл.Однако с # 1, как показано в википедии, у вас есть связь между Model и View, и поэтому они кажутся мне довольно связанными.Кажется, что «оригинальный» MVC не решает своей цели.
В отличие от этого, # 2 для меня очень ясно приводит к универсальному представлению, которое знает только, как отображать и вводить данные через пользовательский интерфейс, модели, которая незаботиться вообще о том, как он представлен, и о контроллере, который знает об обоих и становится единственным потенциально повторно используемым кодом.Это достигает цели MVC.
Это хорошо для меня, потому что я работаю в Какао, который "верит в" # 2, и я работаю в простом C ++, в который я могу поверить во что угодно.Но какой из этих ароматов MVC я узнаю в дикой природе?Например, Ruby on Rails, Struts, PureMVC ... они "используют MVC", но я бы ожидал увидеть там # 1 или # 2?
EDIT: Похоже, # 2 - этоболее приемлемый, так что любой современный подход использует # 1, если так, то что?