IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

injection de d�pendance


Sujet :

Design Patterns

  1. #1
    R�dacteur/Mod�rateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Analyste programmeur senior
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Billets dans le blog
    22
    Par d�faut injection de d�pendance
    Bonjour � tous,

    Je cherchais des informations sur le l'injection de d�pendance et je suis tomb� sur ce tr�s bon tutoriel : Injection de d�pendances en .NET, pattern, int�r�t et outils et en continuant mes recherches sur internet j'ai vu qu il existait �galement :
    • injection par interface ;
    • injection par champs.


    Pour l'injection par interface, si j'ai bien compris la diff�rence avec l'injection par constructeur c'est dans la signature du constructeur on passe un param�tre de type interface au lieu d'un param�tre de type classe, ma compr�hension est elle correcte ?
    En revanche pour l'injection par champs, je n'ai trouv� aucune explication m�amenant a une compr�hension, est ce que quelqu�un pourrais me donner plus de d�tails dessus ?

    Merci par avance
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aid�, pensez � remercier . La discussion est r�solue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Exp�rience, R�alisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  2. #2
    Membre �m�rite
    Inscrit en
    Janvier 2011
    Messages
    805
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Par d�faut
    Hello,

    Je ne connais qu'un autre type d'injection, qui est l'injection par m�thode : tu passes la d�pendance dans la m�thode qui en a besoin au moment de l'appel de celle-ci, et la d�pendance ne reste pas dans l'objet, elle est transitoire.

    "Injection par interface" est plus ou moins sous-entendu de nos jours quand tu fais de l'IoC. D'ailleurs, dans le tuto c'est bien pr�cis� � la fin de la section I :

    En d'autres termes, on va, dans un premier temps, d�finir un jeu d'interfaces de fa�on � ce que nos diff�rents modules puissent communiquer par un contrat.
    C'est pour �a qu'on parle de "r�solution" � propos des conteneurs IoC : r�soudre une d�pendance, c'est, � partir d'une interface, d�terminer quel type concret instancier pour en injecter une instance ensuite. C'est une composante essentielle de l'inversion de contr�le : non seulement on ne laisse pas � l'objet final le contr�le sur l'instanciation de ses d�pendances, mais on ne le laisse pas non plus connaitre le type concret de cette d�pendance. Cela permet principalement de ne pas avoir � modifier le code de la classe consommatrice quand une particularit� de sa d�pendance change, et d'appliquer le principe de s�paration des responsabilit�s : on abstrait les d�tails d'impl�mentation qui ne concernent pas la classe cliente.

    Sur "l'injection par champ", j'imagine qu'il s'agit de mettre la d�pendance dans un champ de l'objet au lieu de passer par un setter ?

    • S'il s'agit d'un champ public, j'ai du mal � voir l'int�r�t par rapport � un setter, et �a viole l'encapsulation de l'objet.

    • Normalement, les champs priv�s ou protected sont inaccessibles depuis l'ext�rieur. Certains conteneurs d'IoC doivent pouvoir contourner �a avec de la reflection ou du proxying, mais je ne vois pas trop l'int�r�t. En effet, cela interdira � quiconque d'injecter la d�pendance par la voie normale. On se retrouve avec une classe qui a besoin de certaines d�pendances pour fonctionner mais sur laquelle on ne donne aucun point d'entr�e pour les injecter - �a ne marchera qu'avec des moyens d�tourn�s.

Discussions similaires

  1. [EJB3] [JBoss] Injection de d�pendance circulaire ?
    Par Claythest dans le forum Java EE
    R�ponses: 6
    Dernier message: 04/08/2009, 08h11
  2. [Framework] Injection de d�pendances ; comment se passer du XML ?
    Par ummon99 dans le forum Spring
    R�ponses: 3
    Dernier message: 12/01/2008, 09h19
  3. [EJB3] Injection de d�pendance et Stateful
    Par newbeewan dans le forum Java EE
    R�ponses: 1
    Dernier message: 15/05/2007, 07h33
  4. [Integration] [EasyMock] Injection de d�pendance � l'�x�cution
    Par frangin2003 dans le forum Spring
    R�ponses: 2
    Dernier message: 06/03/2007, 11h06
  5. Spring + TagSupport et injection de d�pendance
    Par worldchampion57 dans le forum Spring Web
    R�ponses: 2
    Dernier message: 26/02/2007, 09h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo