Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε τι σημαίνει η αρχή της αντιστροφής των εξαρτήσεων στον αντικειμενοστραφή προγραμματισμό;

sobes.tech AI

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

Η Αρχή της Αντιστροφής Εξαρτήσεων (Dependency Inversion Principle, DIP) είναι μία από τις πέντε αρχές SOLID στον αντικειμενοστραφή προγραμματισμό. Λέει:

  • Οι μονάδες υψηλού επιπέδου δεν πρέπει να εξαρτώνται από τις μονάδες χαμηλού επιπέδου. Και οι δύο πρέπει να εξαρτώνται από αφαιρέσεις.
  • Οι αφαιρέσεις δεν πρέπει να εξαρτώνται από τις λεπτομέρειες. Οι λεπτομέρειες πρέπει να εξαρτώνται από τις αφαιρέσεις.

Αυτό σημαίνει ότι, αντί μια κλάση να δημιουργεί ή να χρησιμοποιεί άμεσα συγκεκρι implementations άλλων κλάσεων, πρέπει να εργάζεται με αφαιρέσεις (π.χ., διεπαφές ή πρωτόκολλα). Αυτό αυξάνει την ευελιξία και διευκολύνει τις δοκιμές.

Παράδειγμα σε Swift (iOS):

protocol DataService {
    func fetchData() -> String
}

class APIService: DataService {
    func fetchData() -> String {
        return "Δεδομένα από το API"
    }
}

class ViewModel {
    private let service: DataService

    init(service: DataService) {
        self.service = service
    }

    func load() {
        print(service.fetchData())
    }
}

let apiService = APIService()
let viewModel = ViewModel(service: apiService)
viewModel.load()  // Εκτύπωση: Δεδομένα από το API

Εδώ, το ViewModel εξαρτάται από την αφαιρεση DataService, και όχι από την συγκεκριμένη υλοποίηση APIService. Αυτό επιτρέπει την εύκολη αντικατάσταση της υλοποίησης της υπηρεσίας, π.χ., με ένα mock για δοκιμές.