Maison > Java > javaDidacticiel > le corps du texte

Enum Singleton : instance sans constructeur ou méthodes statiques – Quelle approche choisir ?

Patricia Arquette
Libérer: 2024-11-03 21:54:31
original
566 Les gens l'ont consulté

Enum Singleton: Constructor-less Instance vs Static Methods - Which Approach to Choose?

Choisir entre les approches d'instance Enum Singleton et de méthode statique

Lors de l'utilisation d'un Enum pour créer un singleton en Java, il existe deux approches courantes : utiliser une énumération sans constructeur avec des méthodes d'instance, ou en utilisant une méthode statique dans l'énumération. Chaque approche offre ses propres nuances.

Enum sans constructeur avec méthodes d'instance

<code class="java">public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}</code>
Copier après la connexion

Dans cet exemple, le singleton est accessible via Elvis.INSTANCE.getAge(). Cette approche fournit une instance claire de l'objet, permettant l'accès à la fois aux variables et aux méthodes spécifiques à l'instance.

Enum avec des méthodes statiques

<code class="java">public enum Elvis {
    INSTANCE;
    private int age;

    public static int getAge() {
        return INSTANCE.age;
    }
}</code>
Copier après la connexion

Dans ce cas, le singleton est accessible à l'aide d'Elvis .getAge(). Cette approche met l'accent sur les méthodes statiques, qui sont pratiques lorsque le comportement du singleton ne repose pas fortement sur des variables spécifiques à l'instance.

Décider entre les approches

Le choix entre ces approches dépend des exigences spécifiques :

  • Besoin d'une instance : Si vous avez besoin d'une instance spécifique avec ses propres variables et méthodes, utilisez l'énumération sans constructeur avec des méthodes d'instance.
  • Suffisance des méthodes statiques : Si les méthodes statiques suffisent pour accéder aux fonctionnalités du singleton, alors l'énumération avec des méthodes statiques est une solution plus simple.

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