Maison >Java >javaDidacticiel >Énumérations en tant que singletons en Java : quelle implémentation vous convient le mieux ?
Dans le langage de programmation Java, l'utilisation d'une énumération en tant que singleton offre un moyen pratique de garantir qu'une seule instance de une classe existe. Cependant, différentes approches peuvent être utilisées pour implémenter ce modèle singleton avec des énumérations, entraînant de légères variations dans les fonctionnalités et l'utilisation.
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
Dans Avec cette approche, le champ INSTANCE est créé, définissant efficacement une instance singleton de l'énumération Elvis. Le constructeur privé restreint l'instanciation en dehors de la définition d'énumération. Pour accéder à l'instance, on utiliserait Elvis.INSTANCE.getAge().
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
Ici, le champ INSTANCE est privé comme avant. Cependant, au lieu d'exposer un getter sur l'instance enum, une méthode statique publique getAge() est fournie. L'appel d'Elvis.getAge() récupère la propriété age de l'instance enum.
Méthode 1 :
Méthode 2 :
La meilleure approche pour utiliser une énumération en tant que singleton dépend du cas d'utilisation spécifique.
En général, envisagez d'utiliser des méthodes statiques lorsque la fonctionnalité est autonome. et ne nécessite pas d'instance explicite de la classe enum. Pour les situations où les propriétés d'une instance sont essentielles et où un accès direct est nécessaire, la première approche peut être plus appropriée.
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!