Согласно Sun и Msdn, это шаблон проектирования.
Согласно Википедии, это архитектурный образец.
По сравнению с шаблонами проектирования архитектурные шаблоны больше по масштабу. (Википедия - Архитектурный образец )
Или это архитектурный образец, который также имеет образец дизайна?
Какая из них правда?
Ответы:
MVC - это скорее архитектурный шаблон, но не для полного приложения. MVC в основном относится к уровню пользовательского интерфейса / взаимодействия приложения. Вам по-прежнему понадобится уровень бизнес-логики, возможно, какой-то уровень обслуживания и уровень доступа к данным. То есть, если вы предпочитаете многоуровневый подход.
источник
Почему одно из них должно быть правдой?
Оба могут быть правдой, в зависимости от точки зрения.
MVC может быть архитектурным шаблоном, если он составляет основу архитектуры приложения.
Его также можно рассматривать как просто шаблон проектирования, абстрактное понятие, применимое к любому приложению.
источник
Шаблоны проектирования говорят, как эффективно писать код (с учетом метрик кода ).
Несколько преимуществ:
Архитектурные шаблоны говорят, как эффективно использовать ресурсы.
источник
Я знаю, что на него ответили некоторое время назад, но никто еще не упомянул книгу, сделавшую MVC известной: Pattern-Oriented Software Architecture (POSA), Бушманн и др., Опубликованную в 1996 году. Хотя и не так широко читается, как книга Design Patterns. от Gamma и др., POSA - одна из основополагающих книг, используемых сообществом шаблонов.
Да, и POSA очень четко определяет MVC как архитектурный шаблон. Я догадываюсь, что MS и Sun просто небрежны и называют каждый паттерн «паттерном проектирования».
источник
Я думаю, что оба верны. Если вы смотрите на конкретный экземпляр MVC в такой среде, как Ruby on Rails, то это создание больше похоже на шаблон проектирования. Если вы посмотрите на MVC как на общую концепцию , это скорее архитектурный шаблон.
источник
Шаблоны проектирования внутри триады классов Модель / Представление / Контроллер (MVC) включают, но не ограничиваются:
Наблюдатель , разделяющий объекты так, чтобы изменения одного (модели) могли повлиять на любое количество других (представлений), не требуя, чтобы измененный объект (модель) знал подробности других (представлений).
Composite , который позволяет нам обращаться с групповым объектом (составным представлением) так же, как мы обрабатываем один из его отдельных объектов (компоненты представления).
Стратегия , где представление использует экземпляр подкласса Controller для реализации конкретной стратегии ответа; чтобы реализовать другую стратегию, просто замените экземпляр контроллером другого типа.
Заводской метод , определяющий класс контроллера по умолчанию для представления.
Декоратор , добавляющий прокрутку в вид.
Ссылка
Эрик Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес. Шаблоны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования . Аддисон-Уэсли, Рединг, Массачусетс, 1994.
источник
MVC всегда упоминается и вводится как / в уровне представления в книгах по архитектуре программного обеспечения.
Прочтите эти книги:
Архитектура решений Microsoft.NET для предприятий (Microsoft Press)
Профессиональные шаблоны проектирования ASP.NET (Wrox)
Шаблоны корпоративных решений с использованием Microsoft.NET (Microsoft Press)
Шаблоны архитектуры корпоративных приложений (Аддисон Уэсли)
Практическое руководство по архитектуре предприятия (Prentice Hall)
источник
Если вы поместите в комнату десять архитекторов программного обеспечения и попросите их обсудить, что такое шаблон модель-представление-контроллер, вы получите двенадцать различных мнений. … Некоторые пуристы неизбежно будут сомневаться в том, что я называю «MVC». Не стесняйтесь оставлять пламенный комментарий на доске объявлений внизу этой веб-страницы. Я с радостью рассмотрю разные точки зрения на то, что означает MVC, но имейте в виду, что мне все равно.
Джош Смит
источник
По словам Мартина Фаулера, это архитектуры с графическим интерфейсом пользователя: архитектуры Мартина Фаулера с графическим интерфейсом.
Это зависит от размера приложения, так как он влияет только на классы, связанные с графическим интерфейсом пользователя, в небольшом (в основном графическом интерфейсе) его можно рассматривать как архитектурный шаблон, тогда как в огромном - это просто шаблон проектирования, который вы применяете к графическому интерфейсу. код (может составлять 10% кода приложения).
источник
MVC - это архитектурный шаблон. Очень четко указано и показано на http://molecularsciences.org/zend/mvc_model_view_controller
источник