Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Blup,
2. Aug 2017
Ja, bei meinem Beispiel liefert Analyse.Methode niemals nil zurück. Sollte FMethode = nil sein, wird das NullObject zurückgegeben. Das erledigt der Getter.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Blup,
2. Aug 2017
Hab eure Anregungen und Fehlerhinweise berücksichtigt. War aus dem Stehgreif ohne Entwicklungsumgebung, da kann man sich mal vertippen.
@norweger60
Analyse.Methode liefert üer den Getter nun bei FMethode = nil das Nullobjekt zurück. Der Name ist zwar leer, aber das macht ja bei einem Label auch Sinn. Sollte ein Fehler auftreten, der Schreibzugriffe auf Properties des Nullobjekt zur Folge hat,...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Blup,
2. Aug 2017
Destructor Destroy natürlich immer "override". "reintroduce" unterdrückt zwar die Warnung des Compilers wenn "override" vergessen wurde. Das führt aber dazu, das dieser Destructor z.B. beim Aufruf von Free nicht aufgerufen wird.
Ein Beispiel für eine Lösung mit Nullobject:
TMethode = class
protected
class var FNullObject: TMethode;
class function CreateNullObject: TMethode;
...