Pregunta

¿Es correcto usar una constante privada en la siguiente situación:

Supongamos que tengo un juego con una variable de vidas y una variable de inicio de vidas. Al comienzo del juego, establezco la variable vidas para que sea igual a la variable startingLives. Así es como lo haría normalmente:

private var lives:int = 0;
private var startingLives:int = 3;

private function startGame():void
{
   lives = startingLives;
}

(el código de ejemplo es ActionScript por cierto)

Mi pregunta es: en caso de que realmente sea:

private var lives:int = 0;
private const STARTING_LIVES:int = 3;

private function startGame():void
{
  lives = STARTING_LIVES;
}

StartingLives parece poco probable que cambie en el tiempo de ejecución, así que ¿debería usar una constante y volver a cambiar a una variable si resulta que no es constante?

ACTUALIZACIÓN: el consenso parece ser que este es un buen uso de una constante, pero ¿qué pasa con la sugerencia de amdfan de que es posible que desee cargar el valor desde un archivo de configuración?

¿Fue útil?

Solución

Póngalo en una constante llamada DEFAULT_STARTING_LIVES , pero también tiene una variable llamada startingLives. Por ahora, establezca startingLives = DEFAULT_STARTING_LIVES . Más tarde, puede establecer StartingLives basándose en un valor de un archivo de configuración. Si el archivo no se ha creado o no se encuentra, tiene una copia de seguridad.

(gracias a Plinth por la expansión en mi respuesta original)

Otros consejos

Sí, este es un buen uso de una const. Como regla general, cualquier " variable " cuyo valor no cambiará en el tiempo de ejecución debe hacerse una constante. Esto permite al compilador optimizar esos valores colocándolos en un área de memoria (ROM) separada. (NOTA: Eso no es una garantía de que su compilador se optimizará, simplemente lo hace posible .)

Creo que una constante privada es apropiada cuando no tiene uso fuera de ese contexto, y resultaría en desorden si se hiciera público.

Ciertamente, usar una constante en tu caso es mejor que un número mágico, especialmente si necesitas usarlo en más de un lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top