MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wann sollte Singleton vs. Transient vs. Request mit Ninject und MongoDB verwendet werden?

Im Allgemeinen soll der Zustand in einer Web-App so weit wie möglich im Bereich der Anfrage liegen.

Nur bei Optimierungen auf sehr niedriger Ebene werden Sie wahrscheinlich jemals auf einen Fall stoßen, in dem es angebracht ist, Singleton-Objekte zu erstellen (und selbst dann besteht die Möglichkeit, dass Sie eine solche Caching-/Sharing-Logik in eine andere Klasse ziehen, die hineingezogen wird als Abhängigkeit von Ihren anderen [Request-Scope]-Objekten und machen Sie das Singleton-Bereich). Denken Sie daran, dass ein Singleton im Kontext einer Webanwendung mehrere Threads bedeutet, die dieselben Objekte verwenden. Das sind selten gute Neuigkeiten.

Auf der gleichen Grundlage ist transienter Umfang die einfachste Standardeinstellung (und deshalb macht Ninject 2 es so) - Anforderungsumfang sollte nur in die Gleichung einfließen, wenn etwas aus Leistungsgründen usw. geteilt werden muss (oder weil dies einfach der Kontext ist). des Teilens [wie in der anderen Antwort erwähnt]).