..
Αντιστροφή «S Ελέγχου (ΔΟΕ) είναι ένα τυπικό χαρακτηριστικό του πλαισίου, το οποίο κινείται ο έλεγχος της ροής από την αίτηση για το ίδιο το πλαίσιο.
Ας πάρουμε ένα παράδειγμα για να αποσαφηνιστεί η έννοια: αν δημιουργήσετε ένα GUI API μέσω του swing , ο προγραμματιστής χρειάζεται μόνο για την εφαρμογή των χειριστές των γεγονότων που προκαλούνται από το χρήστη, όπως το πάτημα ενός κουμπιού ή την εισαγωγή κειμένου. Πλαίσιο έχει απομείνει για τον έλεγχο της ροής εφαρμογή, όπως το κλείσιμο και το άνοιγμα των παραθύρων.
Αυτό το είδος συμπεριφοράς λέγεται ΔΟΕ, επειδή ο έλεγχος μεταφέρεται την επέκταση του πλαισίου.
Από τη στιγμή που είναι σαφές ποια είναι η ΔΟΕ, βλέπουμε πώς χρησιμοποιείται την άνοιξη.
Όλες οι εφαρμογές αποτελούνται από αντικείμενα που φτάνουν το προκαθορισμένο στόχο πρέπει να συνεργάζονται μεταξύ τους, και αναπόφευκτα σχηματίζονται εξάρτηση.
Κανονικά αυτές οι εξαρτήσεις επιλύεται με έναν κωδικό που είναι κατάλληλο για τη διαμόρφωση (συνήθως τον κατασκευαστή).
Ας υποθέσουμε ότι πρέπει να εφαρμόσουμε μια κατηγορία για τη διαχείριση ενός καταστήματος βίντεο:
it.mrwebmaster πακέτο?
εισαγωγή java.util.ArrayList?
java.util.List εισαγωγή?
{Δημόσια τάξη VideoManager
Ιδιωτικός dvdService DvdService?
δημόσια VideoManager () {
super ()?
/ **
* Ανάλυση Διαμόρφωση και εξάρτηση
* /
this.dvdService DvdServiceImpl = νέα ()?
}
<Dvd> GetAvalaibleDvdList δημόσια λίστα () {
/ **
* Ανάκτηση του καταλόγου των DVD
* /
Λίστα <Dvd> dvdList dvdService.getDvdList = ()?
/ **
* Βρόχος μέσω του καταλόγου των DVD για να βρουν
* Οι διαθέσιμες
* /
Λίστα = νέα ArrayList <Dvd> availabeDvdList <Dvd> ()?
για (DVD DVD: dvdList) {
αν (dvd.isDisponibile ()) {
availabeDvdList.add (DVD)?
}
}
επιστροφή availabeDvdList?
}
}
Σε αυτό το παράδειγμα το VideoManager τάξη έχει το καθήκον της ανάκτησης της λίστας των μη ενοικιαζόμενες DVD. Ο κατάλογος είναι ανακτηθεί χρησιμοποιώντας μια υπηρεσία (DvdService) που ανακτά μια λίστα με όλα τα DVD, και ποδηλασία στον κατάλογο είναι το DVD διαθέσιμα. Η VideoManager τάξη, ως εκ τούτου, έχει μια εξάρτηση από την DvdService αντικείμενο, το οποίο έχει επιλυθεί στον constructor.

Αν δεν είχε χρησιμοποιήσει την άνοιξη θα πρέπει να έχετε να ανησυχείτε για την επίλυση του VideoManager dipendeza στον κατασκευαστή της κλάσης, δεδομένου ότι η εξάρτηση θα πρέπει να επιλυθούν μέχρι την άνοιξη.
Την άνοιξη, τότε, η ΔΟΕ χρησιμοποιείται για να αντιστραφεί η έλεγχο της διαμόρφωσης των εξαρτήσεων.
Για το λόγο αυτό επινοήθηκε από τον Martin Fowler, στο διάσημο του άρθρο , ο όρος εξάρτησης, Injection (DI), το οποίο μερικές φορές χρησιμοποιείται λανθασμένα ως συνώνυμο ΔΟΕ id.
Η βασική ιδέα της DI είναι να έχουμε ένα ξεχωριστό αντικείμενο για να κάνει το ψήφισμα εξάρτησης και αρχικοποίηση.
Η ακόλουθη κατηγορία assembler, έχει το καθήκον να προετοιμάσει την DvdService κατηγορία:

Υπάρχουν τρεις τύποι εξάρτησης, έγχυσης:
| |
Linux (Μάθημα)
Πλήρης οδηγός για την open-source σύστημα. Από 49 €. |
| |
PHP (Μάθημα)
Η πλήρης σειρά μαθημάτων για τη δημιουργία δυναμικών ιστοσελίδων. Από 49 €. |
| |
Ruby και Ruby on Rails (Μάθημα)
Δημιουργία λογισμικού και Web εφαρμογές με Ρουμπίνι και RoR. Από 39 €. |