Ciao a tutti,
ho diverse classi che codificano una valore in un'altro tramite un array di trascodifica, fatte tutte grossomodo seguendo una struttura simile:
public class TranscodedValue {
private string trandscodedVal;
public TranscodedValue(int toTranscode){
string[] transcodeMap = {"Value1", "Value"",.....};
transcodedVal = transcodeMap[toTranscode];
}
public ToString() {...}
}
Ovviamente a seconda delle classi posso avere più avalori da trascodificare od effettuare qualche passaggio intermedio, ma dovrebbe essere irrilevante per il problema.
Quello su cui avrei bisogno di aiuto è dove/come sposto l'inizializzazione dell'array di trascodifica in modo che non venga inizializzato ad ogni new?
Quello che mi è venuto in mente:
- lo sposto tra le variamibli della classe, lo dichiaro statico e lo inizializzo direttamente nella dichiarazione
- utilizzo una classe (Statitca o Singleton o altro?) "Factory" con la "responsabilità" di creare gli oggetti TranscodedValue, essa conterrà la "mappa" e passerà al costruttore direttamente i valori già trascodificati...quindi la classe TranscodedValue si ridurrebbe ad un "banale" ToString personalizzato...
Altre soluzioni?