Come gestire correttamente le costanti "business" con AngularJS?

2

Sto lavorando con AngularJS su un browser game e ho un sacco di costanti "business".

Queste costanti verranno spesso aggiornate durante i test di gioco (bilanciamento del gioco) e utilizzate da diversi moduli / funzionalità.

Attualmente li gestisco in un singolo file del genere:

constants.js

var gameConstants =  {
    BASE_COST: 100,
    MULTIPLIER_COST: 1.07
};

myFactory.js

app.factory('MyFactory', function () {
    return {
         getRealCost: function() {
              return gameConstants.BASE_COST * gameConstants.MULTIPLIER_COST;
         }
    }
});

Ma sto pensando a un fornitore di servizi per le costanti del gioco. Qualcosa come:

constantServices.js

app.factory('ConstantServices', function () {
    var baseCost: 100,            //Should I use UPPER_SNAKECASE here too?
        multiplierCost: 1.07

    return {
         getCost: function() {
              return baseCost;
         }
         getMultiplierCost: function() {
              return multiplierCost;
         }
    }
});

myFactory.js

app.factory('MyFactory', ['ConstantServices' function (ConstantServices) {
    return {
         getRealCost: function() {
              return ConstantServices.getCost() * ConstantServices.getMultiplierCost();
         }
    }
});

Cosa ne pensi? È una buona idea creare un fornitore di servizi solo per le costanti (ad esempio, chiamare un servizio senza alcuna logica)? Pensi a un modo migliore per gestire queste costanti?

    
posta Allan Quatermain 04.09.2015 - 16:01
fonte

1 risposta

0

Utilizza il servizio costante di AngularJS :

app.constant('gameConstants, [ 
  { BASE_COST: 100 },
  { MULTIPLIER_COST: 1.07 }
]);

E poi iniettare le GameConstants ovunque ti servano:

app.factory('MyFactory', ['gameConstants', function (gameConstants) {
    return {
         getRealCost: function() {
              return gameConstants.BASE_COST * gameConstants.MULTIPLIER_COST;
         }
    }
}]);
    
risposta data 05.09.2015 - 10:11
fonte

Leggi altre domande sui tag