Подтвердить что ты не робот

Какие альтернативы существуют для модели-View-Controller?

Пройдя университет и после развития SO, я много слышал об архитектурном шаблоне Model-View-Controller. Я случайно использовал шаблон MVC еще до того, как я понял, что это такое, и все еще использую его в своей повседневной работе. Из того, что я видел, это, вероятно, самый популярный образец, используемый сегодня. То, о чем я мало слышал, - это альтернативные шаблоны, которые вы можете использовать вместо MVC. Какие существуют варианты и по каким причинам вы решили использовать их поверх MVC? Мне также интересно знать типы систем, для которых они типичны для использования. Наконец, каковы плюсы и минусы, которые приходят вместе с их использованием?

4b9b3361

Ответ 2

Некоторые другие архитектурные шаблоны, включая MVC.

Многоуровневые системы

TCP/IP

Объектно-ориентированная организация

Model-View-Controller, представление-абстракция, просмотр представлений и просмотр модели ViewModel.

Примерами могут быть ASP.NET MVC, Ruby on Rails и множество других.

Событие, неявное обращение

Окружение браузера (DOM)

Архитектура труб и фильтров

Трубы Unix

Хранилища

Переводчики с таблицей


Вы также можете найти эту статью Гарланом и Шоу в области архитектуры программного обеспечения.

Еще одна заслуживающая внимания ссылка - это статья об архитектурных шаблонах в Wikipedia.

Ответ 3

Я иногда видел MVC без C, где view прослушивает изменения в данных модели и соответственно изменяет рендеринг, и где методы в модели привязаны к обработчикам событий для представления.

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

Я думаю, многие утверждают, что это все еще MVC, просто гибридизованная версия и что привязки, установленные между представлением и моделью, являются логикой контроллера.

Ответ 4

Ну, там Model-View-Presenter, но я думаю, вы обнаружите, что наиболее распространенной альтернативой MVC является отсутствие надлежащего разделения. В качестве крайнего примера рассмотрим классические страницы ASP, где HTML, VBScript и SQL находятся рядом друг с другом в одном файле. (Это не bash ASP - вы найдете много таких примеров на других языках.)

Ответ 5

Несмотря на то, что приведенные выше ответы верны, я думаю, что гораздо важнее отметить, что слова "шаблон дизайна" полностью неизвестны 90% всех людей, которые создают программное обеспечение. Они просто начинают писать код.

Проблема заключается не в выборе наилучшего подхода к дизайну, а в убеждении других, что дизайн имеет ценность.

Ответ 7

Семейство шаблонов Presentation-Abstraction-Control (PAC), где интерфейс/взаимодействие обрабатывается иерархией агентов.

Статья в Википедии не велика http://en.m.wikipedia.org/wiki/Presentation-abstraction-control

Ответ 8

В Lift веб-каркас мы используем View Первый. В основном представление состоит из одного или нескольких фрагментов (несколько похожих на контроллеров), а фрагменты могут быть вложенными. Это очень хорошо работает с HTML и Scala встроенными возможностями обработки XML.

Ответ 10

Как насчет шаблона Observer. Если я не ошибаюсь, MVC был представлен в Smalltalk, и после этого появились несколько шаблонов публикации/подписки.

Шаблон наблюдателя (подмножество шаблона публикации/подписки) представляет собой шаблон проектирования программного обеспечения, в котором объект, называемый субъектом, ведет список своих иждивенцев, называемых наблюдателями, и автоматически уведомляет их о любых изменениях состояния, обычно вызывая один из своих методов. Он в основном используется для реализации распределенных систем обработки событий.

Пример: кнопка "Сохранить" активируется в редакторе, только когда есть данные для сохранения. Другим примером шаблона наблюдателя является архитектура Document View в MFC, где в представлении обновляется при изменении документа.