Konstanten-Klasse: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 10: Zeile 10:
[https://www.baeldung.com/java-constants-good-practices Hier] wird auch noch einmal im Detail auf andere Wege eingegangen, Konstanten anders und Global zu definieren und warum das schlechte Methoden sind.
[https://www.baeldung.com/java-constants-good-practices Hier] wird auch noch einmal im Detail auf andere Wege eingegangen, Konstanten anders und Global zu definieren und warum das schlechte Methoden sind.
|schweregrad=leicht
|schweregrad=leicht
|negativ=<syntaxhighlight lang="Java">
public class Constants {
    public static final int MATRIX_MAX_WIDTH = 9;
    public static final int MATRIX_MAX_HEIGHT = 9;
    public static final int MATRIX_DEFAULT_CELL_VALUE = -1;
    public static final String UI_CLOSE_BUTTON_TEXT = "Close"
    public static final String PARSING_EXCEPTION_MESSAGE = ...
    ...
}
</syntaxhighlight>
Diese Klasse modelliert kein Belangen oder Anliegen der Domäne, sondern kapselt lediglich Konstanten, die zu verschiedenen anderen Klassen gehören.
|positiv=<syntaxhighlight lang="Java">
public class Matrix {
    private static final int MAX_WIDTH = 9;
    private static final int MAX_HEIGHT = 9;
    private static final int DEFAULT_CELL_VALUE = -1;
    public void calculateCore() {
        ...
    }
}
public class UserInterface {
    private static final String CLOSE_BUTTON_TEXT = "Close"
    ... // Other UI functionality
}
public class ParsingException {
    private static final String MESSAGE = ...
    ... // Other Exception functionality
}
</syntaxhighlight>
Hier wurden die Konstanten aufgeteilt in genau die Klassen, die diese auch verwenden.
|weiterlesen=Ja
|weiterlesen=Ja
|seite=Komplexität
|seite=Komplexität
}}
}}

Version vom 2. Juni 2024, 16:10 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 abgezogen wird. 🤓

Beschreibung

Gottklassen oder auch Konstanten-Klassen sind diese, die entweder viele oder alle Konstanten des Programms deklarieren und bereitstellen. Diese erkennt man oft daran, dass diese kein spezifisches Belangen oder Anliegen der Domäne modellieren, sodern ausschließlich oder primär dem Speichern von Konstanten dienen. Weiterhin wird oftmals von mehreren Klassen darauf zugegriffen. Dabei kann aber auch auf Konstaten anderer Klassen zugegriffen werden.

Das sollte vermieden werden. Konstanten sind dort zu deklarieren, wo sie auch verwendet werden.

Hier wird auch noch einmal im Detail auf andere Wege eingegangen, Konstanten anders und Global zu definieren und warum das schlechte Methoden sind.


Negativbeispiel

public class Constants {
    public static final int MATRIX_MAX_WIDTH = 9;
    public static final int MATRIX_MAX_HEIGHT = 9;
    public static final int MATRIX_DEFAULT_CELL_VALUE = -1;
    public static final String UI_CLOSE_BUTTON_TEXT = "Close"
    public static final String PARSING_EXCEPTION_MESSAGE = ...
    ...
}

Diese Klasse modelliert kein Belangen oder Anliegen der Domäne, sondern kapselt lediglich Konstanten, die zu verschiedenen anderen Klassen gehören.

Positivbeispiel

public class Matrix {
    private static final int MAX_WIDTH = 9;
    private static final int MAX_HEIGHT = 9;
    private static final int DEFAULT_CELL_VALUE = -1;
 
    public void calculateCore() {
        ...
    }
}
 
public class UserInterface {
    private static final String CLOSE_BUTTON_TEXT = "Close"
 
    ... // Other UI functionality
}
 
public class ParsingException {
    private static final String MESSAGE = ...
 
    ... // Other Exception functionality
}

Hier wurden die Konstanten aufgeteilt in genau die Klassen, die diese auch verwenden.


Wenn du diese Seite interessant fandest, findest du hier noch mehr Seite(n) dazu:
Komplexität