В этом действительно нет абсолюта, он всегда открыт для интерпретации. Такие шаблоны, как MVC и MVVM, действительно существуют для определения словарного запаса, описывающего, как проблема может или может быть решена - шаблон не является самоцелью.
Таким образом, ключевым моментом является понимание того, как конкретный автор использует его в проблемной области current . А в некоторых случаях модель может применяться по-разному в одном приложении.
Например, модель может быть чисто 1-1 представлением объекта домена. Таким образом, модель эффективно является доменным объектом. Эта модель также может быть передана в представление, поэтому она также является моделью представления. Таким образом, в этом случае домен = модель = представление модели.
В других частях модели может потребоваться дополнительная информация для ее использования в приложении - скажем, клиент требует, чтобы пользователь выбрал состояние. В этом случае - вы могли бы просто ввести состояние в ... но лучше было бы предоставить список выбираемых состояний. Эти выбираемые состояния на самом деле не определяют домен как таковой - даже если они являются ограничениями домена, но они предоставляют информацию для представления. В этом случае я бы добавил список выбора в модель. Поскольку теперь он содержит информацию для представления, я считаю его моделью представления.
Это также работает по-другому - если вы отображаете только имя и фамилию клиента, то вы можете извлечь всю остальную информацию из домена, чтобы предоставить только то, что нужно. Еще раз, вы ограничиваете модель предметной области в целях представления. Таким образом, в этом случае, опять же, у нас есть модель представления.
Таким образом, как я понимаю, буква M в MVC относится к любому типу модели, но модель MVC относится к шаблону представления, навигации, действий и элементов управления. MVVM (для меня) предоставляет немного больше деталей для описания ситуации, когда вы создали модель представления.
Приложение основано на MVC - оно имеет контроллеры, действия, представления ... и некоторые взаимодействия между контроллером и представлением основаны на MVVM, в то время как другие могут передавать всю модель.
Я не думаю, что MS особенно мутит воду - шаблон использовался еще в классах C ++ / MFC, когда он назывался doc-view. (Показывает мой возраст сейчас)
Вид бессвязного ответа - надеюсь, это поможет.