Maison >Java >javaDidacticiel >Comment une énumération Java implémente-t-elle le modèle de conception Singleton ?
Implémentation de Singleton avec un Enum (en Java)
Dans le domaine du développement logiciel, il n'est pas rare de rencontrer des scénarios où nous avons besoin pour garantir qu'une classe n'a qu'une seule instance en mémoire. Singleton, un modèle de conception, répond à cette exigence.
Considérez l'implémentation Java suivante de Singleton à l'aide d'une énumération :
public enum MySingleton { INSTANCE; }
En surface, on pourrait se demander comment cela fonctionne réellement. Après tout, un objet doit être instancié pour exister. Voici la répartition :
Constructeur implicite :
En réalité, la déclaration enum appelle implicitement un constructeur vide. Cependant, cela n'est pas toujours clair à partir du code seul.
Constructeur explicite :
Pour rendre les choses plus explicites, nous pouvons ajouter un constructeur privé à l'énumération :
public enum MySingleton { INSTANCE; private MySingleton() { System.out.println("Here"); } }
Constantes d'énumération et construction :
Les champs d'énumération sont essentiellement des constantes de compilation, mais ce sont aussi des instances de leur type enum. La première fois que le type enum est référencé, ces instances sont construites.
Démonstration de la méthode principale :
Si nous créons une méthode principale dans une classe distincte :
public static void main(String[] args) { System.out.println(MySingleton.INSTANCE); }
Nous pouvons observer le résultat suivant :
Here INSTANCE
Dans cet exemple, l'instance "INSTANCE" est construite la première fois que le enum est référencé dans la méthode principale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!