ich habe eine Klasse "ProgramParser". Die Klasse hat eine statische Klassenvariable "ArrayList program". Diese ArrayList wird in einer ebenfalls statischen Methode der Klasse instanziert und gefüllt. In einer anderen statischen Methode wird wieder auf diese Instanz der ArrayList zugegriffen. Meine Frage wäre nun wie man das aus SW-Architekten Sicht eleganter lösen kann. Oder ist das OK so?
Mein anderer Gedanke war die komplette Klasse von "außen" zu instanzieren und im Konstruktor dann die ArrayList zu instanzieren. Diese würde ja dann solange leben wie das Objekt der Klasse lebt. Aber auf die unten programmierte Art müsste ja die ArrayList bis zum Ende des Programms leben oder? Die Daten darin sind jedenfalls wichtig und sie müssen während der Laufzeit des Programms ständig verfügbar sein.
Hier der stark gekürzte Code:
Viele Grüße
Viper
class ProgramParser
{
public static string lastError;
//TODO: Ist das so okay???
static ArrayList program;
public ProgramParser()
{
}
public static bool StartConvertingFromQBasicToDeviceIndependent(string filename)
{
program = new ArrayList();
try
{
...tue viele Dinge...
program.Add(line);
}
}
catch (Exception ex)
{
lastError = ex.Message;
return false;
}
}
public static bool saveProgramToFile(string filename)
{
try
{
...tue vieles...
foreach (string line in program)
{
sw.WriteLine(line);
}
sw.Close();
return true;
}
catch (Exception ex)
{
lastError = ex.Message;
return false;
}
}
}