Maison > Java > javaDidacticiel > Comment une énumération Java implémente-t-elle le modèle de conception Singleton ?

Comment une énumération Java implémente-t-elle le modèle de conception Singleton ?

Linda Hamilton
Libérer: 2024-12-01 20:01:20
original
641 Les gens l'ont consulté

How Does a Java Enum Implement the Singleton Design Pattern?

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;
}
Copier après la connexion

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");
    }
}
Copier après la connexion

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);
}
Copier après la connexion

Nous pouvons observer le résultat suivant :

Here
INSTANCE
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal