Стоит ли использовать преимущества модели Model-View-ViewModel (MVVM)? - PullRequest
9 голосов
/ 12 апреля 2011

В теме задан вопрос: стоят ли преимущества модели Model-View-ViewModel (MVVM) накладных расходов?

Во многих случаях реализация модели представления сопряжена со значительными накладными расходами на дублирование свойств модели и иногда синхронизацию между элементами данных Model и ViewModel.Например, в настоящее время в Silverlight 4 и WCF RIA модели представления не создаются (если разработчик следует шаблону MVVM, он сам должен создать модели представления, часто дублируя свойства соответствующей модели в ViewModel, которые не делают ничего существенного, кромеобратитесь к Model как к хранилищу).

Почему бы не расширить класс Model, предоставив дополнительные свойства, облегчающие его использование в представлении?

Ответы [ 4 ]

2 голосов
/ 12 апреля 2011

Почему бы не расширить класс Model, предоставив дополнительные свойства, облегчающие использование View вместо этого?

В простых случаях это все, что делает ViewModel -обернуть модель так, чтобы она расширялась таким образом, чтобы ее можно было использовать в представлении.Если ваша Модель может быть привязана напрямую, вы можете это сделать.

При этом слой ViewModel - это нечто большее, чем просто обтекание модели - это также и та логика, специфичная для приложения, то есть:сантехника приложения, произойдет.Что-то должно делать запросы из классов Model правильно и составлять логику.

2 голосов
/ 12 апреля 2011

Почему бы не расширить класс Model, предоставив дополнительные свойства, облегчающие использование View вместо этого?

По сути, это то, для чего PresentationModel . На чем основывается MVVM. Разница в том, что ViewModel является моделью для представления, а не моделью для данных. Поэтому вас больше беспокоит, как представление ведет себя с данными.

Если у вас есть простой пользовательский интерфейс, который все, что он делает, представляет модель, то я бы предложил выставить модель в свойстве ViewModel и связать ее с ней. Убедитесь, что в модели реализовано INotifyPropertyChanged и т. Д.

Сила ViewModel заключается в том, что вам нужно что-то делать в ответ на действие пользователя. В этом случае ViewModel может поддерживать команды, вызывая службы и проверяя их, оставляя модель в виде контейнера данных

0 голосов
/ 16 апреля 2015

Преимущества MVVM

  1. Пониженная сложность.
  2. Изоляция проектирования и разработки.
  3. Зависимость инъекций.
  4. Основным преимуществом является наличие у вас хорошо структурированного приложения Windows Phone для MVVM и его разработка для Windows Metro Desktop. Единственное, что вы хотите сконцентрироваться на дизайне, так как можно использовать ту же модель представления, как она есть.

Надеюсь, это поможет.

0 голосов
/ 12 апреля 2011

Если вас беспокоит дополнительная работа, вы всегда можете создать ViewModelBase (INotifyPropertyChanged, Errors / Validation, generic stuff) для наследования вашей ViewModel, это сведет к минимуму вещи, которые, по вашему мнению, могут стоить вам времени на репликацию.Кроме того, Silverlight / Wpf предоставляет нам связывание, которое значительно сокращает наше кодирование, помимо того факта, что XAML также делает это, предоставляя функциональные возможности посредством разметки.Кроме того, вы можете улучшить дизайн, используя экраны, контроллеры и т. Д.

Для меня я не вижу никаких «накладных расходов» в отношении использования MVVM;если бы они были, это того стоило.Это правильно касается разделения интересов.Он обеспечивает хорошую платформу для разработки, особенно в командах, где люди могут позаботиться о различных аспектах приложения, не затрагивая коды других членов команды (особенно между разработчиками и дизайнерами).

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...