Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verständnisfrage: Interface und dazugehöriges Objekt

  Alt 23. Aug 2012, 17:11
In dem gezeigten Code ist es so, daß hier nicht beide Referenzen "gleichzeitig" verwendet werden.
(oftmals macht man sowas, wenn auf eine Funktion des Objekts zugreifen will, welche man "vergessen" hat ins Interface aufzunehmen)

Objekt vor Interface funktioniert oftmals noch.
Example := TContainer.Create(...); => Selbst wenn hier Example ein IContainer wäre, würde es kurz vor der Zuweisung noch als Objekt behandelt.

Es kommt jetzt allerdings noch drauf an, was FindBlaType(...) und SetIrgendwas macht und ob darin eine Interfacereferenz dieses Objekts erzeugt/verwendet wird, denn dann hat man mit diesem Vorgehen ein Problem, da man dann Interface- und Objektreferenz gleichzeitig verwendet.

Objekt nach Interface ist standardmäig nicht möglich, da man hierfür, bei Freigabe der letzen Interfacereferenz, die Freigabeautomatik des Interfaces deaktivieren müßte.
Bzw. man muß an den Stellen, wo man es in als Objekt benötigt, sicherstellen, daß über diese Dauer immer mindestens eine Interfacereferenz existiert.


Außerdem gibt es hier ein Speicherleck, wenn das IF ein False liefert, bzw. wenn es eine Exception gibt ... also wenn der Programmablauf nicht beim Result := vorbei kommt, da sich dann niemand dafür verantwortlich hält, dieses Objekt wieder freizugeben.
$2B or not $2B

Geändert von himitsu (23. Aug 2012 um 17:19 Uhr)
  Mit Zitat antworten Zitat