Sobes.tech
Junior — Middle
91

Объясните принцип внедрения зависимостей в программный код и его преимущества.

Сұралған компаниялар
Swiftfactory
Бренд Монитор
appfox

AI-дан жауап

sobes.tech AI

Dependency Injection (DI) — бұл объектінің тәуелділіктерін сырттан алатын жобалау үлгісі, ол өздігінен оларды құрып алмайды. Бұл модульдік пен кодтың тестілеуін жақсартады.

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($"Пайдаланушы {name} жасалды.");
    }
}

// Қолдану:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Алиса");