Sobes.tech
Back to questions
Intern — Junior
66

Для чего используется внедрение зависимостей в программных модулях?

Companies where asked
Swiftfactory

Answer from AI

sobes.tech AI

Внедрение зависимостей (Dependency Injection, DI) используется для повышения модульности и тестируемости программных модулей. Вместо того чтобы создавать зависимости внутри класса, они передаются извне, что позволяет легко заменять реализации, упрощает поддержку и расширение кода.

Например, в C# с помощью DI можно передать реализацию интерфейса в конструктор класса:

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.");
    }
}

Такой подход облегчает замену логгера на другой (например, файловый) без изменения класса UserService.