Junior — Middle
Ce abordări și tehnici asigură respectarea principiului inversiunii dependențelor în proiectarea sistemului?
sobes.tech AI
Răspuns de la AI
Principiul inversiunii dependențelor (Dependency Inversion Principle) în proiectarea sistemelor se realizează prin următoarele abordări și tehnici:
- Utilizarea abstracțiilor în locul implementărilor concrete. Clasele trebuie să depindă de interfețe sau clase abstracte, nu de clase concrete.
- Injecția dependențelor (Dependency Injection). Dependențele sunt transmise clasei din exterior (prin constructor, proprietăți sau metode), și nu sunt create în interiorul acesteia.
- Inversarea controlului (IoC). Controlul asupra creării și legării obiectelor este transferat către un container sau framework extern.
Exemplu în C# cu injecție de dependențe:
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; // dependența este transmisă din exterior
}
public void CreateUser(string name)
{
// logica de creare a utilizatorului
_logger.Log($"Utilizator {name} creat.");
}
}
Această abordare facilitează testarea, extinderea și întreținerea codului.