Hi Benmik,
ich habe mal ein kleines Einsteigertutorial für Interfaces erstellt.
Vielleicht hilft es Dir ja etwas:
http://www.delphipraxis.net/183702-i...-factorys.html
Interfaces sind hilfreich, wenn man gleiche Funktionalitäten in unterschiedlichen Klassen unterbringen will.
Es erspart einem das Prüfen und Casten von vorliegenden Objekten wie
Delphi-Quellcode:
if (MyObj is ClassA) then
(MyObj as ClassA).DoX
else if (MyObj is ClassB) then
(MyObj as ClassB).DoX;
Statt dessen schreibt man einfach
Delphi-Quellcode:
var
lDoX: IDoX;
...
if Supports(MyIntf, IDoX, lDoX)
lDoX.DoX;
Dan ist völlig egal, was da für ein Objekt dahinter steckt. Wichtig ist nur noch, ob DoX unterstützt wird oder nicht.
Fluch und Segen (und außerhalb von Delphi unüblich) ist die automatische Referenzzählung. Objekte hinter Schnittstellen werden automatisch freigegeben, wenn es keine Referenzen mehr darauf gibt.
Das kann man als positiv oder auch negativ bewerten - je nach den vorliegenden Bedürfnissen.