Einzelnen Beitrag anzeigen

Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Klasse sich selbst in eine abgeleitete konvertieren

  Alt 1. Mär 2010, 11:29
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.
  Mit Zitat antworten Zitat