Maison > Java > javaDidacticiel > Instance vs méthode statique pour les singletons : laquelle est idéale pour une implémentation basée sur l'énumération en Java ?

Instance vs méthode statique pour les singletons : laquelle est idéale pour une implémentation basée sur l'énumération en Java ?

Mary-Kate Olsen
Libérer: 2024-11-04 05:48:29
original
715 Les gens l'ont consulté

  Instance vs Static Method for Singletons: Which is Ideal for Enum-Based Implementation in Java?

Création de singletons avec Enum en Java : différences et considérations

En programmation orientée objet, les singletons sont des classes qui garantissent l'existence d'un seul exemple. Java permet la création de singletons à l'aide d'énumérations. Bien qu'il existe différentes approches pour y parvenir, deux variantes notables incluent :

Option 1 : méthode d'instance

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

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

Cette approche crée une variable d'instance privée (âge) et expose une méthode getter (getAge) pour y accéder. L'accès singleton est obtenu via Elvis.INSTANCE.

Option 2 : méthode statique

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

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

Dans cette variante, la variable age est toujours privée dans l'énumération, mais on y accède via une méthode statique (getAge). L'accès au singleton se fait via Elvis.getAge().

Différences et considérations

  • Méthode d'instance :

    • Crée une méthode getter spécifique à l'instance (getAge).
    • Utile lorsque les propriétés spécifiques à l'instance doivent être modifiées ou accessibles.
  • Méthode statique :

    • Offre un accès direct à la variable age sans nécessiter d'instance.
    • Peut récupérer uniquement la valeur de la variable sans la modifier.
  • Considérations sur la liaison :

    • L'option 1 permet une liaison facile aux propriétés qui attendent une instance (Elvis.INSTANCE), tandis que l'option 2 peut nécessiter une liaison à la classe elle-même (Elvis.class).
  • Optimalité :

    • L'approche par méthode statique est plus optimal car il élimine le besoin de créer une instance uniquement pour accéder à un membre statique.

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!

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