Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Interface "überladen" vorhandener Methoden? (https://www.delphipraxis.net/178816-interface-ueberladen-vorhandener-methoden.html)

Stevie 30. Jan 2014 12:19

AW: Interface "überladen" vorhandener Methoden?
 
Zitat:

Zitat von himitsu (Beitrag 1245947)
Wenn bei aktivem ARC die Interfacereferenzen ans ARC weitergeleitet werden,
dann müsste man ja bei allen Interfaces, welche "anders" zählen, ja das ARC deaktiviert werden.
So gesehn, wurde das dann doch falschrum implementiert, weil das ARC hätte besser seine Referenzen ans Interface weitergeben müssen? :?:

Wie soll ARC an Interfaces irgendwas weitergeben. Die Referenzzählung bei Interfaces ist ein Implementierungsdetail der implementierenden Klasse.
Wenn man es genau betrachtet und berücksichtigt, dass man seinen Code nicht von Implementierungsdetails abhängig machen soll, bewegt man sich bei der Referenzzählung und Programmierung gegen Interfaces genau genommen schon ziemlich in einer Grauzone.

Gegen ein grausames Design, in dem man Objekt und Interface Referenzen bunt vermischt und keinen Plan mehr über die genauen Lebenszyklen und Scopes der Dinger hat, ist noch kein Kraut gewachsen. Man könnte jetzt wieder für einen GC argumentieren, aber auch den kann man verwirren, so dass ohne ihm auf seltsamste Weisen unter die Arme zu greifen, Speicherlecks entstehen.

Der schöne Günther 30. Jan 2014 12:24

AW: Interface "überladen" vorhandener Methoden?
 
Oder anders herum. Es ist noch nicht allzu lange her, da hat der Java-GC immer gerne die Singletons gefressen :-)

Der schöne Günther 31. Jan 2014 17:57

AW: Interface "überladen" vorhandener Methoden?
 
Zitat:

Zitat von himitsu (Beitrag 1245937)
Nja, wenn die Objktreferenzen und die Interfacerferenzen beide mitzählen ... wer hat dann die Kontrolle über die Freigabe des Objekts?
Wenn da keiner aufpasst, müsste doch zwangsläufig der freigeben, welcher zuerst bei 0 ankommt.

Hier noch O-Ton Marco Cantù aus White Paper: The Delphi Language for Mobile Development

Zitat:

In the past, given that interface variable and standard object variables used different memory management models, it was generally suggested to avoid mixing the two approaches (like using an interface and an object variable or parameter to refer to the same object in memory).

With the new ARM compilers with ARC, the reference counting between object and interface variables is unified, so you can mix the two easily. This makes using interfaces more powerful and flexible on Delphi ARC platforms than it is on Delphi non-ARC platforms.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz