Что в MVVM делает его особенно привлекательным для управляемых WPF и Silverlight, но не для родного C ++? - PullRequest
9 голосов
/ 27 мая 2010
  1. Что же такое в WPF и Silverlight, что делает MVVM подходящим для них?
  2. Что в C ++ или в C ++ отсутствует, что делает MVVM и C ++ никогда не упоминаемыми вместе?

Ответы [ 4 ]

9 голосов
/ 27 мая 2010

MVVM (Model - View - ViewModel) - это адаптация шаблонов MVP (Model-View - Presenter) или MVC (Model - View - Controller), которые являются очень популярными шаблонами проектирования для приложений C ++. Основные изменения в шаблоне дизайна заключаются в улучшении поддержки WPF и Silverlight, поэтому WPF подходит не столько для MVVM, сколько для MVVM для WPF.

В первую очередь изменения связаны с чистой поддержкой архитектуры связывания и команд, присутствующей в технологиях XAML, за счет использования объектов INotifyPropertyChanged и ICommand. Еще раз, эти изменения не помогли бы в C ++, так как он не имеет никакой собственной поддержки этих высокоуровневых концепций. Это не значит, что вы не могли имитировать всю эту функциональность в C ++, но на пути вы бы использовали базовый шаблон MVP / C, и в большинстве случаев это «достаточно хорошо».

8 голосов
/ 27 мая 2010

Это не имеет ничего общего с C ++ или любым другим языком как таковым, все дело в том, что это имеет смысл только в контексте WPF / Silverlight.

Единственное, что MVVM приносит в таблицу, чего нет в других шаблонах разделения представления / логики, - это команды / привязка WPF / Silverlight. Основная причина использования MVVM состоит в том, чтобы использовать мощную систему привязки, встроенную в WPF / Silverlight, просто нет смысла говорить об этом в разных контекстах, если только у них нет похожей модели.

3 голосов
/ 27 мая 2010

Одним словом: Binding

2 голосов
/ 27 мая 2010

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

Поэтому причина, по которой вы, вероятно, не слишком много слышите об этом за пределами мира WPF / Silverlight / XAML, заключается в двух причинах.

  1. Он был разработан для WPF
  2. Никто не пытается (в той же степени) поддерживать эти рабочие процессы конструктора / разработчика в графических средах C ++.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...