Konstanten-Klasse
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
🤓 | Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 abgezogen wird. | 🤓 |
Beschreibung
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, sondern ausschließlich oder primär dem Speichern von Konstanten dienen. Weiterhin wird oftmals von mehreren Klassen darauf zugegriffen. Dabei kann aber auch auf Konstanten anderer Klassen zugegriffen werden.
Das sollte vermieden werden. Konstanten sind dort zu deklarieren, wo sie auch verwendet werden.
Schwieriger wird es natürlich, wenn eine Konstante von mehreren Klassen verwendet wird. Ein guter Ort wäre z.B. eine gemeinsame Oberklasse oder auch ein gemeinsames Interface, wenn die Konstante dazu in Bezug steht.
Hier wird auch noch einmal im Detail auf andere Wege eingegangen, Konstanten anders und global zu definieren und warum dies 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