@Benmik
Also grundsätzlich würde ich bei einem überschaubaren Projekt keine Interfaces verwenden. Erst mal bringt das Dir nämlich nichts.
Interfaces bringen Dir nur etwas, wenn sie Vorteile bringen.
Wenn die Wahrscheinlichkeit besteht, dass Du später verschiedene Klassen dynamisch tauschen möchtest, dann machen Interfaces (und der etwas höhere Aufwand) Sinn. Man kann dann eher in "Funtionalitäten" denken und die Klassen sind dann "Funktionalitätenblöcke" (IkannA, IkannB, IkannC).
Wenn Du mit Klassen nicht mehr weiter kommst und andauernd casten musst, dann denke halt über den Einsatz von Interfaces nach. Als reinen Selbstzweck macht das wenig Sinn.
@Sir Rufo
Oh, ich sehe gerade, man kann Interfaces offenbar auch TObject zuweisen und nicht nur TInterfacedObject und somit ohne Referenzzählung arbeiten. War mir noch gar nicht klar. Werde ich heute Abend gleich mal versuchen.
Ich dachte es geht nur mit (Leer-)Überschreiben der Referenzzählung.