Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: gemischter Interface-/Objektzugriff

  Alt 18. Mai 2017, 09:08
Erstmal mußt du entscheiden was führend ist und der Großteil der Referenzen sollte dann in Modus sein.

1: Interface mit Referenzzählung und wenn nötig, dann wird daraus "kurzzeitig" eine Objektreferenz geholt (z.B. TInterfacedObject)
2: Objekt ohne Referenzzählung ist führend und man kann daraus kurzzeitig Interfacereferenzen holen (z.B. TInterfacedPersistent)

Ein Beispiel für 2 ist die VCL, da kannst du jedes TComponent nach einem Interface fragen und so gleiche Funktionalität in unterschiedliche Klassen (auch nachträglich) einbauen.

PS: Etwas neuere Delphis können auch MyIntf as TMyObject , da dort ein virtuelles Interface in TObject steckt, was "intern" per Supports statt einer Interfacereferenz die Objektreferenz raus holt, ohne das man selber ein GetMyObject (Result := Self) bauen muß.

PPS: Unter ARC hat Delphi Interfaces und Objekte vermanscht.
Beides ist "immer" referenzgezählt (außer bei var [Weak] Variable: xxx; ) und nutzt eine gemeinsame Zählung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Mai 2017 um 09:13 Uhr)
  Mit Zitat antworten Zitat