Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Mvc, mvp and mvvm: A comparison of architectural patterns

2.044 visualizaciones

Publicado el

Mvc, mvp and mvvm: A comparison of architectural patterns

Publicado en: Tecnología
  • interest, but i dont understand the languange.
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Mvc, mvp and mvvm: A comparison of architectural patterns

  1. 1. MVC, MVP and MVVM: A Comparison of Architectural Patterns Dyachenko Ivan, Ignite
  2. 2. Что такое Model/View/(C or VM or P) ● Шаблоны, которые описывают модульный подход к разработке приложений ● Модули включают: ○ Model - данные ○ View - слой представления (Presentation Layer) ○ C or VM or P - чистая логика ● Они основаны на принципе "разделения обязанностей"
  3. 3. Why Model-View-(C or VM or P) Основные преимущества MVC шаблонов в том, что они увеличивают: ● Модульность ● Гибкость ● Тестируемость ● Поддерживаемость
  4. 4. Model-View-Controller (MVC) Концепция MVC была описана в 1979 году Трюгве Реенскауг (англ. Trygve Reenskaug) тогда работающим над языком программирования Smalltalk в Xerox PARC.
  5. 5. Smalltalk MVC
  6. 6. Оригинальная концепция В оригинальной концепции была описана сама идея и роль каждого из элементов: модели, представления и контроллера. Но связи между ними были описаны без конкретизации.
  7. 7. Назначение Разделение бизнес-логики (модели) от её визуализации (представления, вида) ● К одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели. ● Не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод данных), для этого достаточно использовать другойконтроллер. ● Ряд разработчиков специализируется только в одной из областей
  8. 8. Концепция ● Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать. ● Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами. ● Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.
  9. 9. Две основные модификации Пассивная модель — модель не имеет никаких способов воздействовать на представление или контроллер, и используется ими в качестве источника данных для отображения Активная модель — модель оповещает представление о том, что в ней произошли изменения, а представления, которые заинтересованы в оповещении, подписываются на эти сообщения. Это позволяет сохранить независимость модели как от контроллера, так и от представления.
  10. 10. Пассивная модель
  11. 11. Активная модель
  12. 12. Классическая реализация Классической реализацией концепции MVC принято считать версию именно с активной моделью
  13. 13. Client/Server (DNA) vs MVC
  14. 14. Client/Server (DNA) vs MVC
  15. 15. MVC Observer Pattern
  16. 16. Model-View-Presenter Шаблон Model-View-Presenter возник в начале 1990-х в Taligent Шаблон проектирования, производный от MVC, который используется в основном для построенияпользовательского интерфейса. В MVP Presenter берет на себя функциональность посредника (играя роль, аналогичную контроллеру в MVC). Кроме того, Presenter отвечает за управление событиями пользовательского интерфейса (например, mouseDown, keyDown и т.д.), которое обычно было заботой контроллера.
  17. 17. Model-View-Presenter MVP является производным MVC • Два типа реализации • Passive View • Supervising Controller • Presenter предполагает функциональность MVC Controller • View отвечает за обработку событий пользовательского интерфейса • Model становится строго модели предметной области • Больше ориентированный на пользовательский интерфейс
  18. 18. Model-View-Presenter
  19. 19. Model-View-Presenter
  20. 20. Пассивный вид (Passive View) В этом случае вид ничего не знает о модели, а только имеет простые свойства, для отображения данных. Представитель считывает информацию из модели и обновляет свойства вида. Требует больше усилий (кода), но связность становится еще меньше.
  21. 21. Наблюдающий контроллер (Supervising Controller) Здесь вид знает про модель и является ответственным за привязку данных (датабиндинг) модели к виду. Контроллер же содержит в себе всю логику работы. Это немного упрощает жизнь, но увеличивает связность.
  22. 22. MVP Passive View/Supervising Controller
  23. 23. MVC vs. MVP
  24. 24. Presentation Model (PM) Модель представления – это логическое представлении UI без привязки к элементам графического интерфейса.
  25. 25. 1) Содержит логику UI: Например, при нажатии на кнопку, модель представления уведомляется об этом и производит соответствующие действия. 2) Отображает данные модели: Производит необходимую конвертацию и форматирование данных модели для правильного отображения пользователю. 3) Хранит состояние UI: Хранения текущего выбранного элемента списка, ошибок валидации и прочее. Представление (вид) (View) имеет доступ к данным, хранящимся в модели представления для дальнейших манипуляций (отображение). Преимуществом такого подхода также является то, что вы можете создавать тесты для вашего UI без привязки к элементам граф. интерфейса.
  26. 26. Model-View-ViewModel (MVVM) Значительной степени основан на MVC • Специализация шаблона MVP известна как Presentation Model • Встроенный специально для WPF и Silverlight сред • Model и View такие же как MVC • ViewModel is a “Model of the View” • It extends the Model with Behaviors the View could use • Data Binding between View and Model • Passes commands between the View and Model
  27. 27. Model-View-ViewModel (MVVM) ViewModel не общается напрямую с View. Вместо ViewModel предоставляет свойства, которые могут легко быть привязаны (прибиндены). View, в свою очередь, использует эти свойства и команды (Commands) для отображения данных и извлечения их из ViewModel. Также необязательно, чтоб View знал о ViewModel. XAML (язык разметки) позволяет декларативно, путем отражения (Reflection) привязать свойства ViewModel к соответствующим элементам View. Благодаря тому, что ViewModel предоставляет доступ через свойства к данным, уже готовым к употреблению (отформатированным и тд), то View – очень простое и не содержит никакой логики.
  28. 28. Model-View-ViewModel (MVVM)
  29. 29. Model-View-ViewModel (MVVM)
  30. 30. Иерархия MVC шаблонов

×