MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Quando usar Singleton vs Transient vs Request usando Ninject e MongoDB


Em geral, em um aplicativo da Web, você deseja que o estado seja o escopo da solicitação o máximo possível.

Somente no caso de otimizações de nível muito baixo é provável que você se depare com um caso em que seja apropriado criar objetos singleton (e as chances, mesmo assim, são de que você puxe essa lógica de cache / compartilhamento para outra classe que seja puxada para dentro como uma dependência de seus outros objetos [request scope] e faça que escopo singleton). Lembre-se de que um singleton no contexto de um aplicativo da Web significa vários threads usando os mesmos objetos. Isso raramente é uma boa notícia.

Na mesma base, o escopo transitório é o padrão mais direto (e é por isso que o Ninject 2 o torna assim) - o escopo da solicitação só deve entrar na equação quando algo precisa ser compartilhado por motivos de desempenho etc. (ou porque isso é simplesmente o contexto da partilha [como mencionado na outra resposta]).