Le pattern singleton permet une instanciation unique (single), mais plusieurs instances du même objet. Le singleton restreint les clients la création créer d'objets multiples, dès que le premier objet créé, il renverra la même instance d'objet à chaque instanciation.
La méthode create est privée parce que nous ne voulons pas que le client y accède, mais notez que la méthode getInstance est publique. Chaque agent peut générer une instance d'imprimante en interagissant avec cette méthode.
Dans AngularJS, les Singletons sont fréquents, les plus remarquables étant service, factory et provider.
La concurrence se produit dans les applications multi-thread lorsque plus d'un thread tente d'accéder à la même ressource. Singletons sont sensibles à la concurrence, de sorte que si aucune instance n'a été initialisée en premier, deux threads pourraient alors créer deux objets au lieu d'en avoir qu'une seule instance. Cela détruit le but d'un singleton. Par conséquent, les développeurs doivent être au courant de la synchronisation lors de la mise en œuvre de singletons dans des applications multithread.
Trouver des cas d'utilisation du singleton est assez difficile pour la plupart qui ne l'ont pas encore utilisé avant. mais par exemple imaginez l'utilisation d'une imprimante bureautique. S'il y a vingt salariés dans un bureau, et qu'ils utilisent tous la même imprimante. En partageant l'imprimante, ils partagent les mêmes ressources.
La méthode create est privée parce que nous ne voulons pas que le client y accède, mais notez que la méthode getInstance est publique. Chaque agent peut générer une instance d'imprimante en interagissant avec cette méthode.
Dans AngularJS, les Singletons sont fréquents, les plus remarquables étant service, factory et provider.
La concurrence se produit dans les applications multi-thread lorsque plus d'un thread tente d'accéder à la même ressource. Singletons sont sensibles à la concurrence, de sorte que si aucune instance n'a été initialisée en premier, deux threads pourraient alors créer deux objets au lieu d'en avoir qu'une seule instance. Cela détruit le but d'un singleton. Par conséquent, les développeurs doivent être au courant de la synchronisation lors de la mise en œuvre de singletons dans des applications multithread.
Aucun commentaire:
Enregistrer un commentaire