Junior — Middle
Εξηγήστε την αρχή της εισαγωγής εξαρτήσεων στον κώδικα προγράμματος και τα πλεονεκτήματά της.
sobes.tech AI
Απάντηση από AI
Ο σχεδιασμός εξαρτήσεων (Dependency Injection, DI) είναι ένα μοτίβο σχεδίασης όπου ένα αντικείμενο λαμβάνει τις εξαρτήσεις του από έξω, αντί να τις δημιουργεί μόνο του. Αυτό αυξάνει τη modularity και την δοκιμαστικότητα του κώδικα.
Πλεονεκτήματα του DI:
- Εύκολη δοκιμή — οι εξαρτήσεις μπορούν εύκολα να αντικατασταθούν με mocks ή stubs.
- Ασθενής συσχέτιση — οι κλάσεις δεν εξαρτώνται από συγκεκρι implementations, αλλά μόνο από αφαιρέσεις.
- Αυξημένη ευελιξία — είναι εύκολο να αλλάξετε implementations των εξαρτήσεων χωρίς να αλλάξετε τον κώδικα του καταναλωτή.
Παράδειγμα σε 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("Alice");