Maison > Java > javaDidacticiel > Pourquoi les interfaces constantes devraient-elles être évitées en Java ?

Pourquoi les interfaces constantes devraient-elles être évitées en Java ?

DDD
Libérer: 2024-11-05 05:47:02
original
335 Les gens l'ont consulté

Why Should Constant Interfaces Be Avoided in Java?

Le but déroutant des constantes d'interface

En Java, il est possible de déclarer des champs dans une interface, les rendant implicitement publics, statiques et final. Cela a soulevé des questions parmi les développeurs.

Le piège de l'interface constante

Contrairement aux attentes, la définition de constantes au sein d'une interface est considérée comme un « anti-modèle d'interface constante ». Comme indiqué dans Effective Java de Joshua Bloch, cette pratique expose inutilement les détails de l'implémentation aux utilisateurs et entrave les futures modifications du code. De plus, il lie les sous-classes à l'interface constante.

Anomalies de la plate-forme

Malgré cet avertissement, plusieurs interfaces constantes peuvent être trouvées dans la bibliothèque standard Java, comme Java. io.ObjectStreamConstants. Ces bizarreries ne doivent pas servir d'exemples mais plutôt de contrastes à éviter.

Approches alternatives

Pour éviter les pièges associés aux interfaces constantes, pensez à utiliser une classe utilitaire dédiée avec constructeurs privés et champs finaux statiques.

<code class="java">public final class Constants {

    private Constants() {}

    public static final double PI = 3.14159;
    public static final double PLANCK_CONSTANT = 6.62606896e-34;
}</code>
Copier après la connexion

Cette approche maintient les constantes privées tout en étant facilement accessibles via des importations statiques.

<code class="java">import static Constants.PLANCK_CONSTANT;
import static Constants.PI;

public class Calculations {

    public double getReducedPlanckConstant() {
        return PLANCK_CONSTANT / (2 * PI);
    }
}</code>
Copier après la connexion

Ainsi, même si les constantes d'interface peuvent sembler intrigantes, elles doivent être évitées. en raison de défauts de conception potentiels. Utilisez plutôt des cours privés avec des finales statiques pour maintenir une base de code propre et flexible.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal