Wenn eine private Konstante zu bedienen?
-
03-07-2019 - |
Frage
Ist es recht, eine private Konstante in der folgenden Situation zu verwenden:
Sagen, ich habe ein Spiel mit einer variablen und einer startingLives Variable lebt. Zu Beginn des Spiels stelle ich das Leben Variable die startingLives Variable gleich. Das ist, wie ich es normalerweise tun:
private var lives:int = 0;
private var startingLives:int = 3;
private function startGame():void
{
lives = startingLives;
}
(Beispiel-Code ist Actionscript btw)
Meine Frage ist - sollte dies wirklich sein:
private var lives:int = 0;
private const STARTING_LIVES:int = 3;
private function startGame():void
{
lives = STARTING_LIVES;
}
StartingLives scheint unwahrscheinlich, zur Laufzeit ändern, so soll ich einen const verwenden, und zurück auf eine Variable ändern, wenn es nicht konstant erweist?
UPDATE: Der Konsens scheint zu sein, daß dies eine gute Verwendung eines konstant ist, aber was ist amdfan Vorschlag, dass Sie den Wert in einer Konfigurationsdatei laden mögen
Lösung
Legen Sie es in einer konstanten DEFAULT_STARTING_LIVES
genannt, sondern auch eine Variable mit dem Namen startingLives hat. Vorerst setzen startingLives = DEFAULT_STARTING_LIVES
. Später können Sie startingLives basierend auf einem Wert aus einer Konfigurationsdatei festgelegt. Wenn die Datei nicht erstellt wurde oder nicht gefunden wird, haben Sie eine Sicherungskopie.
(dank Plinth für die Erweiterung auf meiner ursprünglichen Antwort.)
Andere Tipps
Ja, das ist eine gute Verwendung eines konst. Als allgemeine Faustregel gilt: jedes „Variable“, dessen Wert zur Laufzeit nicht ändern sollte eine konstant gemacht werden. Dies ermöglicht es den Compiler, diese Werte zu optimieren, indem sie in einem separaten (ROM) Speicherbereich setzen. (ANMERKUNG:. Das ist keine Garantie, dass Ihr Compiler optimieren, macht es nur möglich )
ich denke, eine private Konstante ist dann geeignet, wenn es keine Verwendung außerhalb dieses Kontextes hat, und in Unordnung entstehen würde, wenn öffentlich gemacht.