Ich dachte, ich sei schlau und füge einer TObjectList
ab und an auch mal ein eine Nullreferenz hinzu
Schlauer wäre es das
Null-Objekt-Pattern einzusetzen.
Nehmen wir mal an, bei den Objekte
handle es sich um Spielfiguren, die sich selbst zeichnen können.
Delphi-Quellcode:
TGameObj = class(TObject)
public
procedure Paint2Canvas(canvas:TCanvas);virtual; abstract;
end;
TNullGameObj = class(TGameObj)
public
procedure Paint2Canvas(canvas:TCanvas);override;
end;
procedure TNullGameObj.Paint2Canvas(canvas:TCanvas);
begin
// nichts tun
end;
Anstatt nil werden jetzt bei Bedarf Objekte der Klasse TNullGameObj eingefügt.
Das hat den Vorteil dass man später keine Fallunterscheidung benötigt und Null-Objekte genau gleich wie alle anderen Objekte behandeln kann.