Geschrieben von Flominator in
Job
Mittwoch, 15. Juli 2009
Nach dem "Kampf" von Castle Monorail vs. Microsoft MVC geht es heute um Inversion of Control bzw. Dependency Injection. Hier also meine Notizen zu diesem spannenden und häufig unterschätzten Thema:
- Klasse bezieht von ihr genutzte Klassen "von außen"
- Nutzung von Interfaces statt konkreter Implementierung
- Zuweisung des konkreten Objektes "von außen" - manuell oder per IoC-Container
- Konfigurationsstrategien für den Container
- via XML - aufwändig, bäääh!
- Objekte einzeln und "von Hand" hinein packen
- relevante Objekte per Reflection aufsammeln (+ Sonderfälle explizit zuweisen)
- Constructor injection: wenn keine Default-Implementierungen vorhanden sind
- Setter injection: praktisch, da nur bei Bedarf Default-Implementierungen überschrieben werden
- Performance: Zeitverlust durch IoC im Vergleich zu new ist verschwindend gering im Vergleich zur Lebenszeit des Objektes
- IoC hilft, Singletons zu erzeugen (die im Vergleich zum "normalen" Pattern sogar überschrieben werden können)
- Idealfall: alles wird injiziert
- Container lässt sich beim Testen auch ausmocken
Nachdem zu Inversion of Control und Dependency Injection auf dem Open Space in Ulm keine Fragen mehr kamen, handelten wir spontan noch zwei andere Themen ab: Mocking "normale" Frameworks wie z.B. Rhino Mocks nutzen Proxy-Mechanismusmit Ve Kommentar (1)
Aufgenommen: Jul 16, 21:38