Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε σε τι συνίσταται η ιδέα της εισαγωγής εξαρτήσεων στον σχεδιασμό λογισμικού;

sobes.tech AI

Απάντηση από AI

Η ιδέα της Εισαγωγής Εξαρτήσεων (Dependency Injection, DI) είναι να διαχωρίσουμε τη δημιουργία και διαχείριση των εξαρτήσεων των αντικειμένων από τη χρήση τους. Αντί η κλάση να δημιουργεί ή να αναζητά τις εξαρτήσεις της, αυτές παρέχονται από έξω.

Αυτό αυξάνει τη modularity, διευκολύνει τις δοκιμές (μπορούν να χρησιμοποιηθούν αντικείμενα mock) και απλοποιεί τη συντήρηση του κώδικα.

Παράδειγμα: αντί να δημιουργεί ένα αντικείμενο υπηρεσίας μέσα στην κλάση,

class UserService {
    private UserRepository repo = new UserRepository(); // αυστηρή εξάρτηση
}

παραδίδουμε την εξάρτηση μέσω του κατασκευαστή:

class UserService {
    private UserRepository repo;

    public UserService(UserRepository repo) {
        this.repo = repo;
    }
}

Τώρα, το UserService δεν είναι υπεύθυνο για τη δημιουργία του UserRepository, αλλά το λαμβάνει από έξω, κάτι που επιτρέπει την εύκολη αλλαγή υλοποίησης και δοκιμή της κλάσης.