Я создаю модели представления для каждого экрана в моем приложении ASP.NET MVC. Я поместил всю логику для создания модели представления в класс построителя . Обычно существует специальная логика для преобразования объектов данных в модели представления, включая агрегирование, фильтрацию и сортировку. Каждому построителю передается набор зависимостей , который представляет собой объект, содержащий свойства для каждой зависимости (репозитории, другие построители и т. Д.).
Проблема в том, что мои имена становятся действительно длинными. Набор зависимостей обычно имеет имя, составленное следующим образом:
имя-модели-представления + Builder + DependencySet
Модели представлений обычно имеют имена, состоящие из того, где вы в настоящее время находитесь, и дочерних элементов. Например, в моей системе определения поставщиков распределены по категориям.Итак, чтобы показать определения поставщиков в категории, у меня есть модель представления, которая называется:
CategoryProviderDefinitionListViewModel
Она будет выглядеть примерно так:
public sealed class CategoryProviderDefinitionListViewModel
{
public long CategoryId { get; set; }
public string CategoryName { get; set; }
public ProviderDefinitionViewModel[] ProviderDefinitions { get; set; }
}
Итак, мой конструктор называется
CategoryProviderDefinitionListViewModelBuilder
Итак, мой набор зависимостей называется
CategoryProviderDefinitionListViewModelBuilderDependencySet
, который едва умещается на экране. Мои бедные пальцы устали. Кроме того, на некоторых экранах почти одинаковы данные, поэтому их названия моделей представления почти одинаковы. Когда я просматриваю свою папку, становится действительно сложно найти конкретные классы модели представления, которые я ищу.
В идеале я мог бы сгруппировать классы моей модели представления вместе, связав их с представлениями, в которых они используются. Было бы неплохо избегать коллизий и делать имена как можно короче, сохраняя при этом значимость. Кто-нибудь нашел соглашение об именах / организацию папок, которое хорошо работает в этом сценарии?