Einzelnen Beitrag anzeigen

günni0
(Gast)

n/a Beiträge
 
#21

AW: Constructor Rückgabewert nil-en statt Instanz zurückzugeben?

  Alt 11. Apr 2018, 17:18
Ich gebe mal etwas vor. Wie sähe das denn korrekt aus mit einer Factory-Class?

Delphi-Quellcode:
type
 TMyClass = class
 public
  constructor Create(Parameter);
  destructor Destroy; override;
end;

implementation

constructor TMyClass .Create(Parameter);
begin
 prüfe dies

 prüfe das

 WENN Fehler/korrupte Daten, dann raise exception und abbrechen

 SONST
  am Ende erstelle Thread -A- oder -B-
end;

destructor TMyClass .Destroy;
begin
 if Assigned(ThreadA) then
  begin
   ThreadA.Stop; // Funktion in der Thread-Unit selber - hat schon seinen Sinn :P
   ThreadA.Free;
  end;

  // ThreadB, wenn Assigned, wird an anderer Stelle von Hand freigegeben

 inherited Destroy;
end;
Delphi-Quellcode:
TMyClass: TList;


try
 myClass := TMyClass.Create(Parameter);
except
end;

if Assigned(myClass) then // wenn oben rause ausgelöst wird, ist myClass not Assigned und muss nicht hinzugefügt werden
 MyGenericTList.Add(myClass);
  Mit Zitat antworten Zitat