Является ли 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% кода приложения).
Ответ 9
MVC - это шаблон архитектуры. Очень четко указано и показано на http://molecularsciences.org/zend/mvc_model_view_controller
Ответ 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.