An das Factory-Pattern habe ich auch gedacht. Aber dann hätte ja die Factory auch über das Wissen verfügen müssen, wie Entschieden wird welche konkrete Klasse im Endeffekt erstellt werden muss.
Ich habe nun eine Methode gefunden, wie nur die eine abstrakte Klasse das wissen muss. Und in meinem Fall muss die abstrakte Klasse nicht alle Ableitungen kennen. Ich arbeite mit "GetClass(string)"
Delphi-Quellcode:
var Transporter : TTransporter;
Transporter := TTransporter.CreateInstanz('TSchweineTransporter');
Delphi-Quellcode:
class function TTransporter.CreateInstanz(EntryValue:
string): TTransporter;
var tmp : TPersistentClass;
begin
tmp := GetClass(EntryValue);
if not Assigned(tmp)
or tmp.InheritsFrom(TTransporter)
then
begin
Result :=
nil;
raise Exception.Create('
Fehler!');
end
else
Result := TTransporter(tmp);
end;
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.