Является ли MVC шаблоном проектирования или архитектурным рисунком

Согласно Sun и Msdn это шаблон проектирования.

В соответствии с Wikipedia это архитектурный шаблон

По сравнению с шаблонами проектирования архитектурные шаблоны более масштабны. (Википедия - Архитектурный рисунок)

Или это архитектурный шаблон, который также имеет шаблон дизайна?

Какая из них истинна?

Ответ 1

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

Ответ 2

Почему один из них должен быть правдой?

Оба могут быть истинными, в зависимости от точки зрения.

MVC может быть архитектурным шаблоном, если он составляет основу архитектуры приложения.

Это также можно рассматривать как просто шаблон дизайна, абстрактное понятие, применимое к любому приложению.

Ответ 3

Шаблоны проектирования говорят, как эффективно писать код (учитывая Кодовые показатели).

Несколько преимуществ:

  • Легко поддается обслуживанию
  • Высокое Re-удобство использования
  • Чтение из-за абстракций

Архитектурные шаблоны говорят, как эффективно использовать ресурсы.

  • Выполнение параллельных задач, таких как программисты и графические дизайнеры, может работать параллельно.
  • Для создания программного обеспечения можно использовать несколько технологий.

В MVC,    a). Представления могут быть созданы с использованием шаблонов javascript, а также html можно использовать   b). Контроллеры могут быть написаны .NET framework и   c). Модели могут быть написаны на Java - может использоваться Java-служба, которая возвращает только данные json.

В шаблоне проектирования шаблон не может быть, в котором код может быть написан в нескольких технологиях, таких как класс AdminUser в Java, Класс Customer в классе С#, Partners в Php и шаблоне factory в Ruby:); hmmm..so easy?:)

Ответ 4

Я знаю, что это было отреагировано некоторое время назад, но никто еще не упомянул книгу, в которой знаменитая MVC: архитектура с программным управлением (POSA), опубликованная в 1996 году Бушманом и др. Хотя это не так широко читалось, как Книга Design Patterns, Gamma и др., POSA - одна из основополагающих книг, используемых сообществом шаблонов.

О, и POSA очень четко идентифицирует MVC как архитектурный шаблон. Моя догадка заключается в том, что MS и Sun просто неаккуратно и называют каждый шаблон "шаблоном дизайна".

Ответ 5

Я думаю, что оба они верны. Если вы смотрите на конкретный экземпляр MVC в такой среде, как Ruby on Rails, эта инстанция является скорее шаблоном проектирования. Если вы рассматриваете MVC как общую концепцию, это скорее архитектурный образец.

Ответ 6

MVC всегда упоминается и вводится как/в слое представления в книгах по архитектуре программного обеспечения.

Прочтите эти книги:

Ответ 7

Если вы поместите десять архитекторов программного обеспечения в комнату и попросите их обсудить, что такое шаблон Model-View-Controller, вы получите двенадцать разных мнений.... Некоторые из пуристов там неизбежно будут смущены тем, что я называю "MVC". Не стесняйтесь оставлять пылающий комментарий на доске объявлений внизу этой веб-страницы. Я с удовольствием рассмотрю различные точки зрения на то, что означает MVC, но имейте в виду, что мне все равно.

Джош Смит

Ответ 8

И в соответствии с Мартином Фаулером они представляют собой графические интерфейсы: Архитектуры Martin Fowler-GUI

Это зависит от размера приложения, так как оно влияет только на классы, связанные с GUI, в небольшом (в основном графическом интерфейсе) его можно рассматривать как архитектурный образец, тогда как в огромном случае это будет просто шаблон проектирования, который вы применяете к графическому интерфейсу (может составлять 10% кода приложения).

Ответ 10

Шаблоны проектирования внутри триады классов Model/View/Controller (MVC) включают и не могут быть ограничены:

  • Observer, развязывая объекты, чтобы изменения в одной (модели) могли влиять на любое количество других (представления), не требуя, чтобы измененный объект (модель) знал подробности другие (взгляды).

  • Композитный, который позволяет рассматривать объект группы (составной вид) так же, как мы рассматриваем один из его отдельных объектов (просматривать компоненты).

  • Стратегия, где представление использует экземпляр подкласса Controller для реализации конкретной стратегии ответа; для реализации другой стратегии просто замените экземпляр на другой тип контроллера.

  • Factory Метод, указав класс контроллера по умолчанию для представления.

  • Decorator, добавив прокрутку к представлению.


Ссылка

  • Страницы с 4 по 6 (Раздел 1.2 Шаблоны проектирования в Smalltalk MVC)
  • Страницы с 293 по 304 (шаблон проектирования наблюдателя)
  • Страницы с 163 по 174 (Композитный шаблон дизайна)
  • Страницы с 315 по 324 (шаблон разработки стратегии) ​​
  • Страницы с 107 по 116 (Factory шаблон проектирования метода)
  • Страницы с 175 по 185 (образец дизайна Decorator)

Эрик Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес. Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения. Addison-Wesley, Reading, MA, 1994.