Ich verwende Dependency Injection in meinem Code (mit Ninject ) und dachte, dass es mir ganz gut geht, bis ich auf ein Performance-Problem gestoßen bin, das war verursacht durch ein Missverständnis, wo DI-Container in Ihren Code passen. Es scheint eine Menge Informationen darüber zu geben, wie DI-Frameworks zu verwenden sind, aber nicht zu sehr darüber, wo sie nicht verwendet werden sollten oder wie sie am besten zu verwenden sind (zumindest das, was ich finden konnte).
Ich dachte, ich würde schreiben, was ich für gute Praktiken hielt, und sehen, ob andere Leute mir zustimmen und welche anderen Best Practices die Leute machen können.
Hier ist eine kurze Liste der wichtigsten Punkte (von denen einige auch im OP erscheinen):
Ich kann nicht sagen, dass ich Ihrer Meinung über Singleton vs. Transient-Objekte zustimme. Der entscheidende Punkt von DI ist, dass ein externer Mechanismus (z. B. ein DI-Container) die Lebensdauer einer bestimmten Abhängigkeit bestimmt, nicht einer anderen, so dass alle Abhängigkeiten vom DI-Container verwaltet werden müssen.
Tags und Links dependency-injection ioc-container