Посмотрите на мой контроллер (я использую Dependency Injection для зависимостей менеджера):
public RoleController(IRoleRepository roleRepository, ISiteRepository siteRepository, IUserRepository userRepository, IDbContext dbContext)
{
_roleRepository = roleRepository;
_siteRepository = siteRepository;
_userRepository = userRepository;
_dbContext = dbContext;
}
Наличие класса с множеством зависимостей - это запах кода? Правильно?
Но, в моем примере мне нужно связать Users
и Sites
в Role
, тогда мне нужны эти зависимости для выполнения этой ассоциации.
Некоторым людям из списка рассылки мне сказали, что наличие слишком большого количества зависимостей является признаком того, что что-то, вероятно, неправильно. Но я не вижу другого пути. Я разделил свои обязанности, есть что-то в этой ситуации, я не знаю, как лечить? Что-то не так?
Обновление:
Мне нужны репозитории и DbContext, потому что DbContext - это мой UnitOfWork, репозитории не сохраняются.
Этот пример представляет собой простой CRUD с некоторыми другими функциями, такими как Ассоциации в представлении с GRID.
Обновление 2:
Я использую архитектуру, где моим уровнем пользовательского интерфейса является MVC.