Dependency Injection
En komponent får beroenden utifrån i stället för att själv skapa konkreta implementationer.
Vad är Dependency Injection?
Med Dependency Injection får en komponent nödvändiga beroenden utifrån, till exempel som parametrar till konstruktorn. Den behöver inte själv skapa den konkreta implementationen. Sammansättningen av delarna skiljs från deras användning. Vanlig programkod kan göra detta; principen kräver ingen särskild DI-container.
I ett påhittat exempel får en rapportkomponent en dataläsare. I drift läser den från avsedd källa; för ett riktat test kan en lämplig testimplementation ge fasta data. Det stöder isolerad kontroll men visar inte korrekt anslutning till den riktiga källan. Livslängd, konfiguration och frigörande av nödvändiga resurser måste fortfarande klargöras. DI är en särskild form av inversion of control; inte all inversion of control eller varje service locator är DI.
Källor
Relaterade begrepp
- Clean ArchitectureEn arkitekturprincip som skiljer verksamhetsregler från yttre detaljer och låter källkodens beroenden peka mot kärnan.
- EnhetstestEn riktad kontroll av en liten, definierad programvarudel, exempelvis regel eller funktion.
- DesignmönsterEn återanvändbar lösningsstruktur för ett återkommande designproblem, med egna avvägningar.
- Cache stampedeEn cache stampede uppstår när samtidiga cachemissar startar samma kostsamma beräkning eller datafråga flera gånger.
- BackpressureBackpressure anpassar inflödet av data till mottagarens bearbetningskapacitet genom signaler om att sakta ned eller pausa.
- Race conditionEtt felaktigt resultat som beror på tidsordningen mellan överlappande åtkomster.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.