Cette solution présente l'avantage, non négligeable, d'éliminer la synchronisation lors de chaque accès. Cela fonctionne car la machine virtuelle garantit qu'un objet d'une classe ne peut être accédé tant que la classe n'est pas complètement chargée. Toutefois cette solution n'est viable que si toutes les informations nécessaires à la création du Singleton sont disponibles au moment du chargement, ce qui ne peut être toujours garanti. En effet, la machine virtuelle charge les classes comme elle le veut et il n'y a aucune garantie que le chargement soit différé jusqu'au premier appel de la méthode getInstance().
Partager