MVC - Совместное использование экземпляров ViewModel в нескольких представлениях

Просто интересно, что думают люди о совместном использовании экземпляров модели одного представления в нескольких представлениях?

Это антишаблон или это общепринятая практика, каковы плюсы и минусы?

1 ответ

Просто из моего опыта

Основным недостатком может быть рефакторинг в будущем, если представления расходятся в том, что они отображают. Вам нужно подумать о том, насколько вероятно это, когда вы принимаете решение поделиться мнением.

Также будьте осторожны с именами моделей. Например, если у вас есть представления Book/Edit.aspx и Book/Add.aspx, вы бы не хотели, чтобы AddBookViewModel.cs использовался в Book/Edit.aspx. Это может создать некоторый запутанный код в ваших тестах, например.

В приведенном выше примере, я бы обычно шел с CreateEditBookViewModel.cs

Если вы посмотрите на подобные SharpArchitecture (www.sharparchitecture.net/), я полагаю, что они используют этот подход в своих скаффолдингах, и они также разделяют элементы представлений, используя общие модели представлений через партиалы.

С точки зрения того, что это анти-паттерн, я бы сказал нет; просто здоровое повторное использование кода.

Другие вопросы по тегам