Quando usar uma constante privado?
-
03-07-2019 - |
Pergunta
É direito de usar uma constante privado na seguinte situação:
dizer que tenho um jogo com uma variável vidas e uma variável startingLives. No início do jogo que eu definir a variável vidas para igualar a variável startingLives. Isto é como eu normalmente fazê-lo:
private var lives:int = 0;
private var startingLives:int = 3;
private function startGame():void
{
lives = startingLives;
}
(exemplo de código é ActionScript btw)
A minha pergunta é - isso deve realmente ser:
private var lives:int = 0;
private const STARTING_LIVES:int = 3;
private function startGame():void
{
lives = STARTING_LIVES;
}
StartingLives parece improvável que a mudança em tempo de execução, de modo que eu deveria usar um const, e mudança de volta para uma variável se ele sair para não ser constante?
UPDATE:? O consenso parece ser que este é um bom uso de uma constante, mas que sobre a sugestão de amdfan que você pode querer carregar o valor a partir de um arquivo de configuração
Solução
Coloque-o em uma constante chamada DEFAULT_STARTING_LIVES
, mas também tem uma variável startingLives nomeados. Por enquanto, conjunto startingLives = DEFAULT_STARTING_LIVES
. Mais tarde, você pode definir startingLives com base em um valor a partir de um arquivo de configuração. Se o arquivo não foi criado ou não for encontrado, você tem um back-up.
(graças a Rodapés para a expansão na minha resposta inicial.)
Outras dicas
Sim, este é um bom uso de um const. Como regra geral, qualquer "variável", cujo valor não vai mudar em tempo de execução deve ser feita uma constante. Isso permite que o compilador para otimizar esses valores, colocando-os em um (ROM) área separada da memória. (NOTA:. Isso não é uma garantia de que seu compilador irá otimizar, ele apenas torna possível )
Eu acho que uma constante privado é adequado, se não possui exterior uso desse contexto, e resultaria em desordem se tornado público.
Certamente usando uma constante no seu caso é melhor do que um número mágico -. Especialmente se você precisar usá-lo em mais de um lugar