F5: Komposition, Injektion, och Mönster Flashcards
1
Q
Real life example på dependency injection?
A
Tänk dig att du tar emot ett objekt som implementerar ett förväntat gränssnitt. Som hur en universell fjärrkontroll kan kopplas till vilken enhet som helst (så länge enheten följer kommunikationsgränssnittet).
Ett exempel är:
- Barnet som bygger lego, dvs. låt barnet fokusera på själva byggandet
- Ett objekt bör bara fokusera på en sak
2
Q
Vad är dependency injection?
A
- Handlar om att invertera kontroll.
- Istället för att jag bestämmer vad jag ska använda, så deklarerar jag vad jag behöver, och du bestämmer vad jag ska använda.
- Injektion istället för konstruktion av beroenden.
- Separerar konstruktion från användning.
3
Q
Exempel på dependency injection i spel:
A
“Före dependency injection”
- I exempelvis en Sidescroller så kan en spelare:
- gå till vänster, höger och hoppa
- Finns även power-ups som ändrar spelarens förmågor
Utan dependency injection är dock allt detta hårdkodat i player classen. Problem uppstår då när vi vill implementera fler powerups, hur många conditionals osv.
“Med dependency injection”
- Vi implementerar Interface IJumpBehavior
- Player har nu ingen vetskap hur jumping sker - Vi har då istället classer som ex single jump & Double Jump som implementerar Interfacet IJumpBehavior. Classerna har enskilda beteenden (i detta fall hoppbeteenden)
- Player är nu ansvarig för användandet, dvs. Lekandet med legobitarna men inte framplockande av rätt legobit.
4
Q
A