Ho un oggetto che ha poche variabili di base (numeri interi come esempio) e una variabile intermedia per ulteriori elaborazioni. La variabile intermedia può essere calcolata dalla base vars. Ora la domanda: dovrei sempre ripetere il calcolo della variabile intermedia dalla base vars o dovrei salvare il valore e cambiarlo solo se cambiano le variabili di base? (Ho bisogno di accedere a ogni var in ordine pseudo-casuale.)
Due esempi in C ++ - Codice.
Memorizzazione nella cache del risultato:
class Test
{
private:
int a;
int b;
int c;
int x;
void calcX ()
{
// Just an example for a calculation for x.
x = ((a + 10) * (b / (c*c + 1)));
}
public:
void setA (int var)
{
a = var;
calcX();
}
void setB (int var)
{
b = var;
calcX();
}
void setC (int var)
{
c = var;
calcX();
}
// Every var has a get methode.
}
Ricalcola sempre il risultato:
class Test
{
private:
int a;
int b;
int c;
int x;
public:
// Var a, b and c have get and set methodes.
int getX ()
{
return ((a + 10) * (b / (c*c + 1)));
}
}
Quindi, quale modo è considerato migliore? Davvero non lo so. Non dovremmo salvare il valore intermedio perché sarebbe ridondante, ma di nuovo non dovremmo ricalcolare il valore ancora e ancora.