Back to questions
Junior — Middle
64
Можете объяснить принцип внедрения зависимостей в разработке программного обеспечения?
Companies where asked
appfox
Answer from AI
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) — это принцип, при котором объект получает свои зависимости (например, другие объекты или сервисы) извне, а не создаёт их самостоятельно. Это повышает модульность, упрощает тестирование и поддержку кода.
В C# это часто реализуется через конструктор класса, свойства или методы, куда передаются необходимые зависимости. Например:
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message) => Console.WriteLine(message);
}
public class UserService
{
private readonly ILogger _logger;
// Внедрение зависимости через конструктор
public UserService(ILogger logger)
{
_logger = logger;
}
public void CreateUser(string name)
{
// логика создания пользователя
_logger.Log($"User {name} created.");
}
}
// Использование
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");
Таким образом, UserService не зависит от конкретной реализации логгера, что облегчает замену и тестирование.