Injectionde dépendance                             Mathurin BODY         TTFx Breizh User Group              1
Les dépendances• En programmation orienté objet, des dépendances  existent entre les classes du modèle                Movi...
Dépendances codées « en dur »           MovieLister                               FileMovieFinder                         ...
Injection de dépendance• Couplage lâche par interface• Délègue à un composant tiers la résolution de la  dépendance en pas...
3 types d’injection de dépendances• Injection par constructeur• Injection par setter• Injection par interface (ou méthode)...
3 façons d’injecter une dépendance• Programmatiquement• Par configuration xml (ou mxml)                  TTFx Breizh User ...
3 façons d’injecter une dépendance• Par annotation (type ou id)                   TTFx Breizh User Group   7
Les frameworks Flex de DI (ou IoC)•   SwizFramework•   Spring Actionscript (prana)•   Parsley / spicelib•   Mate•   Smarty...
Conclusion  Couplage faible (limité à l’interface)  Réutilisation de composants  Testabilité (injection de bouchons ou moc...
Prochain SlideShare
Chargement dans…5
×

Injection de dépendance

1 811 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 811
Sur SlideShare
0
Issues des intégrations
0
Intégrations
37
Actions
Partages
0
Téléchargements
24
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×