Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Assigned (https://www.delphipraxis.net/28555-assigned.html)

woki 12. Sep 2004 13:34

Re: Assigned
 
Zitat:

Zitat von Muetze1
Ok, ich meinte auch die Published Eigenschaften. Und nun erklär mir mal bitte deine Aussage mit dem Aufbauen des Codes zur Compilerzeit und sozusagen wegnehmen der Read/Write Routinen (so hatte ich es verstanden) und dem Zugriff auf selbige zur Runtime...

Nun, einfach mal mit logischem ÜBerlegen, und ohne dass ich den Sourcecode des Compilers überprüft häte, folgender hypothetischer Source:

Code:
AClass :TClass

private
  FProp :integer;
public
  prop :integer read Fprop;
end
Bei einem Zugriff auf prop weiß der Compiler, dass hier nichts weiter passiert, als dass direkt FProp zurückgeliefert wird, Lesezugriffe auf Prop und FProp sind also äquivalent, der Compiler kann das erkennen und entsprechend optimierten Code erzeugen, ohne gegen das Prinzip der Kapselung zu verstoßen, und ohne das der Entwickler Probleme bekommt wenn er später einmal den internen Aufbau seiner Klasse durch Einziehen eines Getters erweitert.

Wenn ich das im Vorübergehen so richtig verstanden habe, ist es ein ähnliches Prinzip, mit dem DotNet einige Performanceprobleme von Java beseitigt, oder wie A.H. sagt:
"Goog Idesas do not suddenly go away".

Ich denke, dass es auch innerhalb einer Klasse sinnvoll sein kann, auf eine property zuzugeifen, wenn klar ist, dass der Wert der property interessiert, auch wenn bei einer zukünftigen Weiterentwicklung, der reine Feldwert durch einen Getter ersetzt wird, oder das Auslesen / Schreiben Seiteneffekte haben soll. Die VCL bstätigt mich da.
Man sollte sich nur darüber bewußt sein, und welchen Preis man je nach Entwicklungssprache und Compiler/Interpreter Implementation bezahlen muß.

Grüsse
Woki

Chewie 12. Sep 2004 14:02

Re: Assigned
 
Zu beachten ist in der Hinsicht auch, dass die Sichtbarkeitsstufen nur vom Compiler ausgewertet werden. Im Compilat gibts zwischen pirvate, protected, public und published keine Unterschiede mehr (außer der Reihenfolge im Speicher).


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

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