Типичная архитектура, которую я использую, состоит из объектов Manager на бизнес-уровне. Я использую DI / IOC в .NET Core / .NET Standard. Менеджеры внедряются в уровень сервисов, и, следовательно, сервисы внедряются в наши контроллеры API. Итак, в настоящее время я работаю в классе менеджеров. Теперь мне нужен метод, который находится в другом классе менеджера. Обычно я возвращаюсь обратно через уровень сервиса к контроллеру, затем вызываю следующий сервис, а затем через него менеджер.
Мне интересно, можно ли просто ввести менеджера, который мне нужен, непосредственно в менеджера, с которым я работаю. Таким образом, вы сокращаете обратный путь к контроллеру, а затем выполняете резервное копирование через другую службу другому менеджеру. В основном у меня 2 * менеджера.
public class TypeCodeManager : ITypeCodeManager
{
public TypeCodeManager()
{
}
public async Task<int> GetTypeCodeAsync(string typeCode, string code)
}
public class UserManager : IUserManager
{
private readonly ITypeCodeManager _typeCodeManager;
public UserManager(ITypeCodeManager typeCodeManager)
{
_typeCodeManager = typeCodeManager
}
}
Это вообще хорошая идея?
I am wondering whether it is OK to... Зависит от того, что вы имеете в виду под OK.





Я бы сказал, что вообще не рекомендуется переходить в другие домены через «менеджеров», предполагая, что именно ваши менеджеры общаются с уровнем персистентности. Это быстро приведет к путанице в картах зависимостей и коде.
Ваши сервисы являются гораздо лучшим слоем для оркестровки междоменных проблем, поскольку они могут описывать междоменные рабочие процессы и зависеть от нескольких менеджеров.
С точки зрения кода, да, все в порядке. С архитектурной точки зрения? Это совершенно другой вопрос, на который можете ответить только вы и ваша команда.