Injection de dépendance

1 891 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Injection de dépendance

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

×