MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quand utiliser Singleton vs Transient vs Request en utilisant Ninject et MongoDB

En général, dans une application Web, vous souhaitez que l'état corresponde autant que possible à la portée de la demande.

Ce n'est que dans le cas d'optimisations de très bas niveau que vous risquez de rencontrer un cas où il est approprié de créer des objets singleton (et même dans ce cas, il y a de fortes chances que vous extrayiez une telle logique de mise en cache/partage dans une autre classe qui est extraite en tant que dépendance de vos autres objets [portée de la demande] et faites que portée singleton). N'oubliez pas qu'un singleton dans le contexte d'une application Web signifie plusieurs threads utilisant les mêmes objets. Ce sont rarement de bonnes nouvelles.

Sur la même base, la portée transitoire est la valeur par défaut la plus simple (et c'est pourquoi Ninject 2 le fait) - la portée de la demande ne devrait entrer dans l'équation que lorsque quelque chose doit être partagé pour des raisons de performances, etc. (ou parce que c'est simplement le contexte du partage [comme mentionné dans l'autre réponse]).