Je suis un débutant à l'injection de dépendance. Je n'ai jamais utilisé et je n'ai même jamais méconnu ce dont il s'agit, mais après ma dernière attaque sur ce sujet, j'ai découvert que c'est un moyen de découpler un objet et ses dépendances, une fois qu'ils ne sont pas responsables d'instancier les versions concrètes de dépendances plus, comme maintenant le conteneur le fera pour nous et livrera l'objet prêt dans nos mains.Question sur DI et comment résoudre certains problèmes
Maintenant, le point est; "Quand devrais-je l'utiliser?", TOUJOURS ??? En fait, comme je suis un novice et que je n'ai jamais vu un projet utilisant ce modèle, je ne peux pas imaginer comment je devrais l'appliquer à mes objets de domaine !!! Il me semble que je n'instancierai jamais plus mes objets et le conteneur le fera toujours pour moi, mais alors quelques doutes ...
1) Qu'en est-il des oobjects qu'une partie de ses dépendances provient de l'interface utilisateur, par exemple ;
public class User(String name, IValidator validator)
dire que je reçois le nom d'utilisateur de l'interface utilisateur, alors comment va le savoir conatiner et encore delliver cet objet pour moi?
2) Il y a d'autres situations auxquelles je suis confronté; si une dépendance est maintenant un objet qui est déjà instancié, disons ... un objet SINGLETON, par exemple. J'ai vu theres paramètres concernant la durée de vie de la dépendance beign injecté (im parler de Spring.NET, par exemple, http demande portée) ... MAIS, demande et d'autres choses liées au Web sont sur ma couche de présentation, alors comment est-ce que je pourrais lier ma couche de présentation et ma couche de domaine sans casser aucune règle de conception (comme mon domaine devrait être totalement ignorant où il est consommé, ne pas avoir de dépendance de couche, etc)
Je serai ravi d'avoir de vos nouvelles . Merci beaucoup.
Beaucoup de questions DI aujourd'hui =) Voir si cette réponse aide. : http: //stackoverflow.com/questions/5433211/difference-between-ninject-and-rhinomock-or-moq/5433231#5433231 – gideon
Son utilisation @giddy, merci, mais pas exactement le point! =) – renatoargh
@Renato a juste pensé que cela aiderait à expliquer pourquoi on utilise DI. =) – gideon