Quindi ho cercato un codice che ho scritto qualche anno fa per un programma di simulazione economica. Ogni simulazione ha un gran numero di impostazioni che possono essere salvate in un file e successivamente caricate di nuovo nel programma per ripetere la simulazione stessa / simile. Alcune delle impostazioni sono opzionali o dipendono da ciò che viene simulato.
Il codice per leggere i parametri è fondamentalmente una dichiarazione switch molto grande (con alcune istruzioni switch nidificate). Mi stavo chiedendo se c'è un modo migliore per gestire questa situazione.
Una riga del file delle impostazioni potrebbe essere simile a questa:
#RA:1,MT:DiscriminatoryPriceKDoubleAuction,OF:Demo Output.csv,QM:100,NT:5000,KP:0.5 //continues...
E parte del codice che avrebbe letto quella riga:
switch( Character.toUpperCase( s.charAt(0) ) )
{
case 'R':
randSeed = Integer.valueOf( s.substring(3).trim() );
break;
case 'M':
marketType = s.substring(3).trim();
System.err.println("MarketType: " + marketType);
break;
case 'O':
outputFileName = s.substring(3).trim() ;
break;
case 'Q':
quantityOfMarkets = Integer.valueOf( s.substring(3).trim() );
break;
case 'N':
maxTradesPerRound = Integer.valueOf( s.substring(3).trim() );
break;
case 'K':
kParameter = Float.valueOf( s.substring(3).trim() );
break;
// continues...
}