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

War es hilfreich?

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.

Sicherlich eine Konstante in Ihrem Fall verwenden ist besser als eine magische Zahl -. Vor allem wenn man es in mehr als einem Ort verwenden müssen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top