injection de dépendances
DESCRIPTION
Injections de dépendances pour Flex et AS3TRANSCRIPT
TTFx Breizh User Group 1
Injection de dépendance
Mathurin BODY
TTFx Breizh User Group 2
Les dépendances
• En programmation orienté objet, des dépendances existent entre les classes du modèle
MovieLister
Array moviesDirectedBy(String d)
FileMovieFinder
Array findAll()
TTFx Breizh User Group 3
Dépendances codées « en dur »
SimpleCouplage fort avec une implémentation spécifique Pas de réutilisation possiblePas facile à tester
MovieLister
List moviesDirectedBy()
FileMovieFinder
List findAll()create
TTFx Breizh User Group 4
Injection de dépendance
• Couplage lâche par interface
• Délègue à un composant tiers la résolution de la dépendance en passant la bonne implémentation
MovieLister
Array moviesDirectedBy()
MovieFinder<<interface>>
Array findAll()
FileMovieFinder
Array findAll()
Assembleur
create
create
• Inversion de contrôle• Principe Hollywood : Don’t call us, we’ll call you !
TTFx Breizh User Group 5
3 types d’injection de dépendances
• Injection par setter
• Injection par interface (ou méthode)
• Injection par constructeur
TTFx Breizh User Group 6
3 façons d’injecter une dépendance
• Par configuration xml (ou mxml)
• Programmatiquement
TTFx Breizh User Group 7
3 façons d’injecter une dépendance
• Par annotation (type ou id)
TTFx Breizh User Group 8
Les frameworks Flex de DI (ou IoC)
• SwizFramework
• Spring Actionscript (prana)
• Parsley / spicelib
• Mate
• SmartyPants (inspired by Guice)
• Robotlegs
• …
TTFx Breizh User Group 9
Conclusion
Couplage faible (limité à l’interface)
Réutilisation de composants
Testabilité (injection de bouchons ou mocks)
Apprentissage du framework ou conteneur
Martin Fowler:http://martinfowler.com/articles/injection.html