Einzelnen Beitrag anzeigen

thabaker

Registriert seit: 1. Jul 2007
50 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Verständnisfrage zur Benutzung von Interfaces

  Alt 25. Jul 2009, 00:13
chaosben hat eigentlich schon alles gesagt.
Wenn man Klassen-Instanzen und Interface-Referenzen gleichzeitig benutzt, ist das nicht schlecht, nur muss man ganz genau wissen was man tut
1) Referenz an eine Klassen-Instanz-Variable führ nicht zu einer Erhöhung des RefCount-Werts
2) Am besten nie .Free verwenden, das Objekt sollte nur über einen RefCount = 0 freigegeben werden
//edit2: noch mal deutlich: NIE .Free aufrufen wenn der RefCount > 0 ist! Denn dann wird die Instanz noch verwendet und .Free macht es ja kaputt!
3) in anderen Fällen manuell .AddRef und .ReleaseRef (oder so) aufrufen.

Also am besten die gesamte Funktionalität als Interface bereitstellen und auf Klassen-Instanzen verzichten.

//edit: 3) sollte dein Fall sein. Wenn du eine Klassen-Instanz persistend verwenden willst sollte einmal .AddRef nach dem Erstellen die meisten Probleme erschlagen. Aber bitte immer im Kopf behalten was mit dem Referenzzähler passiert. Dieser löst die meisten Probleme (aus)...
  Mit Zitat antworten Zitat