Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Mvc, mvp and mvvm: A comparison of architectural patterns

1.984 Aufrufe

Veröffentlicht am

Mvc, mvp and mvvm: A comparison of architectural patterns

Veröffentlicht in: Technologie
  • interest, but i dont understand the languange.
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

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 шаблонов

×