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, αλλά το λαμβάνει από έξω, κάτι που επιτρέπει την εύκολη αλλαγή υλοποίησης και δοκιμή της κλάσης.