Dieses Vorgehen ist aber nicht in jedem Fall anwendbar. Man muss sich schon entscheiden, ob man nur mit Interface-Referenzen und Referenzzählung arbeiten will, oder ob man ohne Referenzzählung selber die Objekt-Instanzen verwalten will. Für beide Vorgehen gibt es je nach Anwendungsfall gute Gründe. Man muss dann nur die passende Elternklasse verwenden.
Selbstverständlich. Aber was hat das mit der Ausgangsfrage zu tun? Es ging darin nicht um "in jedem Fall", sondern das ganz konkrete Beispiel. Und da ist nun mal die Verwendung des Variablentyps
IInterface, das vom Objekt
TInterfacedObject eingeführt wird, die korrekte Lösung.