2010-03-17 7 views
7

Quelles techniques avez-vous trouvé utiles pour gérer les dépendances de grands projets avec des conteneurs Inversion of Control?Meilleures pratiques IoC dans les grands projets

Est-ce que vous faites tout le bootstrap au même endroit, ou est-ce que vous le divisez?

Utilisez-vous déjà plusieurs conteneurs?

Répondre

8

D'un point de vue architectural, il est important de maintenir une focalisation précise sur l'emplacement de votre Composition Root. Il doit être aussi proche que possible du point d'entrée de l'application, et vous devez composer le graphe de dépendances entier en un seul endroit. Faire autrement peut créer une confusion sur les responsabilités, et vous risquez également d'introduire toutes sortes de bogues subtils car l'instance IFoo résolue à un endroit peut être identique ou non à une instance IFoo résolue à un autre endroit.

Si l'application est si grande que la résolution d'un graphe de dépendances entier en une seule fois est simplement prohibitive, vous pouvez y remédier en utilisant lazy loading lifetimes dans des endroits stratégiques (autour de Aggregate Services). Conceptuellement, j'ai toujours un seul conteneur. (J'ai parfois plusieurs conteneurs parent/enfant en jeu pour casser certaines dépendances circulaires, mais c'est un détail d'implémentation.)

Questions connexes