Sobes.tech
Junior

Mit szolgál a Dependency Injection a C# fejlesztésben?

sobes.tech MI

Válasz az MI-től

A Dependency Injection (DI) a C#-ban a függőségek kezelésére szolgál osztályok között, növelve a kód rugalmasságát és tesztelhetőségét.

A DI fő céljai:

  • Gyengíteni a kötést: az osztályok nem közvetlenül hozzák létre a függőségeiket, hanem kívülről kapják azokat.
  • Egyszerűsíteni a tesztelést: könnyen helyettesíthetők a függőségek mock vagy stub segítségével.
  • Javítani a karbantarthatóságot: a függőség megvalósításának módosítása nem igényli a használó kód módosítását.

Példa:

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) {
        // felhasználó létrehozási logika
        _logger.Log($"Felhasználó {name} létrehozva.");
    }
}

// Függőség injektálás
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Így a DI az irányítás fordított (IoC) elvét támogatja, és javítja az alkalmazás architektúráját.