Heim > Java > javaLernprogramm > Warum sollten konstante Schnittstellen in Java vermieden werden?

Warum sollten konstante Schnittstellen in Java vermieden werden?

DDD
Freigeben: 2024-11-05 05:47:02
Original
335 Leute haben es durchsucht

Why Should Constant Interfaces Be Avoided in Java?

Der rätselhafte Zweck von Schnittstellenkonstanten

In Java ist es möglich, Felder innerhalb einer Schnittstelle zu deklarieren, wodurch sie implizit öffentlich, statisch usw. werden Finale. Dies hat bei Entwicklern Fragen aufgeworfen.

Die Constant-Interface-Falle

Entgegen den Erwartungen wird die Definition von Konstanten innerhalb einer Schnittstelle als „Constant Interface Antipattern“ betrachtet. Wie in „Effective Java“ von Joshua Bloch dargelegt, legt diese Vorgehensweise den Benutzern unnötigerweise Implementierungsdetails offen und behindert zukünftige Codeänderungen. Darüber hinaus bindet es Unterklassen an die konstante Schnittstelle.

Plattformanomalien

Trotz dieser Warnung können in der Java-Standardbibliothek mehrere konstante Schnittstellen gefunden werden, beispielsweise Java. io.ObjectStreamConstants. Diese Kuriositäten sollten nicht als Beispiele, sondern vielmehr als zu vermeidende Kontraste dienen.

Alternative Ansätze

Um Fallstricke im Zusammenhang mit konstanten Schnittstellen zu vermeiden, sollten Sie die Verwendung einer dedizierten Dienstprogrammklasse in Betracht ziehen private Konstruktoren und statische Endfelder.

<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>
Nach dem Login kopieren

Dieser Ansatz hält Konstanten privat und dennoch durch statische Importe leicht zugänglich.

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

public class Calculations {

    public double getReducedPlanckConstant() {
        return PLANCK_CONSTANT / (2 * PI);
    }
}</code>
Nach dem Login kopieren

Obwohl Schnittstellenkonstanten faszinierend erscheinen mögen, sollten sie vermieden werden aufgrund möglicher Konstruktionsfehler. Verwenden Sie stattdessen private Klassen mit statischen Finals, um eine saubere und flexible Codebasis zu erhalten.

Das obige ist der detaillierte Inhalt vonWarum sollten konstante Schnittstellen in Java vermieden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage