Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
10. Dez 2019
Ein sehr schönes Beispiel, das bestätigt, was ich oft sage: Interface Casts sind in gewisser Weise ein Code Smell.
Gegeben, dass TFoo, IThis und IThat implementiert und per Decorator für IThis irgendwo reingegeben wird. Wenn ich nun dieses IThis (was den Decorator repräsentiert) anfrage, dann wird das selbst nicht IThat implementieren. Aber ich könnte den Cast (QueryInterface) an die...
Forum: Object-Pascal / Delphi-Language
Delphi
by Stevie,
9. Dez 2019
Naja dir fehlt die gesamte Mechanik aus TInterfacedObject, die dafür sorgt, dass das Objekt nicht in die Luft fliegt, wenn du während dem Erstellen oder Freigeben implizit die eigene Referenzzählung triggerst.
Außerdem würd ich die Überprüfung vorher machen und nur im positiven Fall ins inherited springen.
Fun fact: Den Cast auf TGUID kannst dir sparen, der Compiler erkennt das auch so.
...