Magic Literal: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:
|kategorie=Programmierstil
|kategorie=Programmierstil
|weiterlesen=Nein
|weiterlesen=Nein
|seite=Algorithmik
}}
}}

Version vom 23. Januar 2024, 14:51 Uhr

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

Beschreibung

Wir reden von "Magic Numbers", wenn im Quellcode zahlen rumfliegen. Was heißt das? Konkret bedeutet das, dass eine Variable mit einem Wert deklariert wurde, der sich niemals ändern kann und wird - eine konkrete Zahl. Würde man jetzt etwas im Quellcode ändern wollen, was voraussetzt, dass wir überall im Program zum Beispiel nicht mehr durch 2, sondern durch 3 teilen sollen, müsste man das überall händisch ändern. Das kostet Zeit, Nerven und man stelle sich vor man findet nicht alle...Besser wäre also, Zahlen als Konstante/Variable zu deklarieren. Wenn wir diese Konstante/Variable jetzt ändern wie in unserem Beispiel, müssten wir nur einmal eine 2 durch eine 3 ersetzen, sodass das Program genau das macht, was wir wollen. Es ist also schneller und vor allem viel weniger Arbeit.Das gilt auch für Zeichenketten.Technisch gesehen sind "Magic Numbers" nicht auf Zahlen beschränkt. Auch Zeichenketten, die die o.g. Charakteristik erfüllen, sind "Magic Numbers" (oder dann eben "Magic Strings").


Negativbeispiel

final String password = "Test";
if (password.length() < 8) {    
System.err.println("Password too short, please choose a longer password!");
}

Positivbeispiel

final String password = "Test";final int minimalPasswordLength = 8;if (password.length() < minimalPasswordLength) {    System.err.println(PASSWORD_ERROR_MESSAGE);}