Fakt bei Delphi Interfaces sind folgende Dinge (zumindest meinem Verständnis und meinen Erfahrungen nach):
- wenn man mit Interfaces arbeitet sollte man tunlichst vermeiden auf die Objekte dahinter zuzugreifen und noch viel mehr, Objekt und Interface Referenzen zu vermischen
- wenn man sich auf das Programmieren gegen Interfaces entscheidet braucht man entweder RefCounting oder eine andere Art des Memory Managements (z.B. die von TComponent oder eines DI Container)
- man braucht einen rein hierarchischen Objectgraph. Doppelt verlinkte oder zirkuläre Referenzen sind komplett zu vermeiden, da sonst das RefCounting komplett das Freigeben verhindert
- weicht man vom RefCounting ab, kann es zu "dangling pointers" kommen
Behält man das jederzeit im Hinterkopf, kann man eine Menge Freude an Interfaces haben - die Nichtbeachtung birgt eine große Anzahl an möglichen Problemen.