Должны ли когда-либо ViewModels повторно использоваться различными представлениями? Если да, то когда? - PullRequest
5 голосов
/ 17 января 2011

Из того, что я прочитал, кажется, что в MVVM считается наилучшей практикой, чтобы каждый View имел собственный соответствующий ViewModel, что имеет смысл, поскольку ViewModel должен быть моделью View. Как правило, повторное использование ViewModels в различных представлениях не рекомендуется. Это всегда так? Если нет, каковы общие рекомендации по определению того, следует ли использовать ViewModel таким образом?

Одна ситуация, которую я могу придумать, когда было бы целесообразно повторно использовать ViewModel с другим View, - это когда два View используют одни и те же данные из модели, а сами Views просто представляют данные по-разному. Если представления могут обрабатывать представление одних и тех же данных разными способами, одна ViewModel может эффективно обслуживать каждое представление.

1 Ответ

8 голосов
/ 17 января 2011

Причина, по которой у нас есть правила, заключается в том, что вы должны подумать, прежде чем их нарушать.

То есть: нет ничего плохого в использовании одной и той же ViewModel для двух похожих видов. Вы должны быть очень осторожны, чтобы ваши два представления не расходились, оставляя вас с моделью представления, которая пытается сделать две разные вещи.

Вот почему рекомендуется иметь одну модель представления для каждого представления. Несмотря на то, что это может привести к дублированию, это в конечном итоге облегчит поддержание представлений.

Что касается дублирования, нет ничего плохого в классах viewmodel, которые имеют общий базовый класс.

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