Maison > Java > javaDidacticiel > Énumérations en tant que singletons en Java : constructeur privé ou méthodes statiques – Quelle approche vous convient le mieux ?

Énumérations en tant que singletons en Java : constructeur privé ou méthodes statiques – Quelle approche vous convient le mieux ?

Susan Sarandon
Libérer: 2024-11-03 18:26:29
original
609 Les gens l'ont consulté

Enums as Singletons in Java: Private Constructor vs. Static Methods - Which Approach is Right for You?

Utiliser des énumérations comme singletons en Java : quelle approche est la meilleure ?

En Java, les énumérations peuvent être exploitées en tant que singletons, fournissant un mécanisme concis et efficace pour créer et accéder instances mondiales et uniques. Cependant, il existe deux approches principales pour implémenter ce modèle de conception à l'aide d'énumérations : utiliser un constructeur privé avec un champ INSTANCE ou s'appuyer uniquement sur des méthodes statiques.

Approche du constructeur privé

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

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

Avec cette approche, l'énumération est déclarée avec un constructeur privé, empêchant l'instanciation directe. Par la suite, un seul champ INSTANCE est créé, qui sert de seule instance de l'énumération. Cette instance est accessible via le champ statique INSTANCE.

Approche de la 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

Alternativement, l'approche de la méthode statique utilise une méthode statique pour récupérer la propriété age du champ INSTANCE. Dans ce cas, l'énumération est déclarée sans constructeur privé et la méthode statique getAge() est utilisée pour accéder à la propriété age du champ INSTANCE (qui doit également être déclarée statique).

Avantages et inconvénients de chaque approche

  • Approche du constructeur privé :

    • Avantages : fournit un contrôle strict sur la création et la maintenance des instances une séparation claire entre l'instance singleton et ses méthodes.
    • Inconvénients : les instances ne peuvent pas être facilement transmises comme arguments ou liées à des propriétés, et elles peuvent être plus difficiles à tester.
  • Approche de la méthode statique :

    • Avantages : les instances peuvent être facilement transmises comme arguments ou liées à des propriétés, et elles sont plus simples à tester.
    • Inconvénients : peut être moins concis et prêter à confusion s'il existe plusieurs méthodes statiques avec des fonctionnalités similaires dans l'énumération.

Meilleure approche

Le choix entre les deux approches dépend des exigences spécifiques de l'application. Si un contrôle strict sur la création d’instances et la séparation de l’instance et des méthodes sont primordiaux, l’approche du constructeur privé est préférable. Toutefois, si la capacité de transmettre ou de lier des instances est essentielle, l’approche par méthode statique constitue une option plus viable. En fin de compte, la décision doit être prise en fonction des compromis et des exigences de chaque projet.

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