Je suis actuellement en train d'apprendre Ninject et l'injection de dépendance et dans ma configuration actuelle, je passe IKernel dans des endroits afin que d'autres classes puissent instancier certaines classes ou obtenir des instances de fabrique.
Actuellement, mes fabriques sont liées en tant que singletons, et passer IKernel dans un objet puis faire _kernel.Get().CreateSomething()
semble être un peu suspect et simplement transformer Ninject en un service locator glorifié.
Aussi, mes fabriques reçoivent IKernel afin qu'elles puissent résoudre l'implémentation liée de l'interface respective qu'elles créent.
Mes questions sont :
-
Est-il permis que les fabriques fonctionnent de cette manière, ou la fabrique doit-elle simplement instancier le type concret elle-même ?
-
Au lieu de passer IKernel partout, devrais-je préférer passer les fabriques / autres services par le constructeur ?