11 votes

Pourquoi la classe de service Grails est-elle singleton ?

J'ai appris que les classes de service Grails sont de type Singleton. Pour quelle raison les classes de service sont-elles définies comme Singleton ?

Merci d'avance.

20voto

OverZealous Points 14115

Les services Grails peuvent être utilisé avec différentes lunettes , pas juste singleton en ajoutant quelque chose comme ceci à la classe :

static scope = "flow"

Extrait du manuel :

  • prototype - Un nouveau service est créé chaque fois qu'il est injecté dans une autre classe.
  • request - Un nouveau service sera créé par demande
  • flash - Un nouveau service sera créé uniquement pour la demande actuelle et la demande suivante.
  • flow - Dans les flux web, le service existera pour la portée du flux.
  • conversation - Dans les flux web, le service existe pour la durée de la conversation, c'est-à-dire un flux racine et ses sous-flux.
  • session - Un service est créé pour le champ d'application d'une session utilisateur.
  • singleton (par défaut) - Il n'existe qu'une seule instance du service.

La principale raison de choisir singleton par défaut est plus performant, à la fois en termes d'utilisation de la mémoire (une seule instance est présente) et de temps de traitement, car il n'y a pas de surcharge liée à la création d'un nouvel objet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X