AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Propertys

Ein Thema von ByTheTime · begonnen am 2. Jun 2014 · letzter Beitrag vom 4. Jun 2014
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Frage zu Propertys

  Alt 2. Jun 2014, 20:03
Hallo,
wenn ich eine Klasse schreibe und eine Property lesen und schreiben möchte, dann schreibe ich mir für das Schreiben immer einen "Setter", wie es hier beschrieben ist. Das habe ich schon immer so gemacht.

Aber was spricht denn gegen property Name: String read FName write FName; ?
Ich schreibe ja auch nicht für jede Property einen "Getter"...

Gruß,
Lukas
Lukas
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Frage zu Propertys

  Alt 2. Jun 2014, 20:36
Eigentlich gar nichts.
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Frage zu Propertys

  Alt 2. Jun 2014, 21:03
Hmmm... Dann werde ich das in Zukunft so machen
Lukas
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Frage zu Propertys

  Alt 2. Jun 2014, 21:28
ist mehr zu schreiben als

property Name: String; und anschließend Shift+SRTG+C
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: Frage zu Propertys

  Alt 2. Jun 2014, 21:40
Und mehr überflüssiger Code.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Frage zu Propertys

  Alt 2. Jun 2014, 23:11
ist mehr zu schreiben als

property Name: String; und anschließend Shift+SRTG+C
stimmt propf und TAB und den Namen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Frage zu Propertys

  Alt 2. Jun 2014, 23:56
Wo war jetzt nochmal im Eingangspost die Bemerkung, das die Anzahl der Tastendrücke irgendeine Rolle spielt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Frage zu Propertys

  Alt 3. Jun 2014, 00:28
Wenn im Setter absolut nichts gemacht wird, außer in das Feld zu schreiben, dann ist der natürlich sinnlos und du kannst direkt in das Feld schreiben.
Vom Code her ist es dennoch möglich später einen Setter einzufügen, wenn dieser nun doch benötigt wird.

Der Vorteil beim Setter ist, daß du dort einen Haltepunkt reinmachen kannst, um Schreibzugriffe zu debuggen.
Oder man kann dort den zugewiesenen Wert prüfen und ungültige Werte unterbinden.
Aber, wie bereits erwähnt, dannst du den nötigen Setter dann immernoch einbauen.



stimmt propf und TAB und den Namen
propf[space]Bar[enter]string[enter]

http://www.delphipraxis.net/179343-k...ml#post1250033
http://www.delphipraxis.net/180540-e...ml#post1260501
...

PS: Diese Vorlagen erzeugen sogar das Feld FName: string; , wenn es noch nicht existiert.



[add]
http://www.delphi-treff.de/object-pa...n-und-objekte/

Das Tutorial sollte man besser mal reparieren.
Zitat:
Destructor Free;
Free?
Und wo ist das Override?
Und wo sind die Inherited?
Und weiter wollte ich nicht mehr schauen, da ich Angst bekommen hab.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 3. Jun 2014 um 00:41 Uhr)
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#9

AW: Frage zu Propertys

  Alt 3. Jun 2014, 11:25
Wenn ich noch etwas hinzufügen darf:
Properties mit direkten Lese- und/oder Schreibzugriff auf Variablen sind meines Erachtens unsauber und "starr" (natürlich gibt es wirklich Ausnahmen, bei denen es sich für uns Delphi-Entwickler vielleicht wirklich nicht lohnt extra Getter/Setter anzulegen). Aber letztendlich entspricht das der Veröffentlichung einer Variable (also "public FVariable: Integer" (Lesen + Schreiben)) und ist auch in anderen Sprachen eher ein NoGo würde ich sagen.

Es macht meines Erachtens in den meisten Fällen durchaus Sinn sich die "Mühe" zu machen Getter und Setter zu schreiben, da man so viel flexibler ist. Außerhalb deiner Klasse hat es niemanden zu interessieren was Du intern machst (z.B. den Wert in die entsprechende Variable zu schreiben). Mit Flexibel meine ich: Du musst deine Property-Deklaration nicht anpassen wenn Du die interne Variable änderst (read/write Sektion) und Du kannst problemlos weitere Aktionen innerhalb der Getter und Setter antriggern, die im Laufe der Entwicklung vielleicht noch kommen (nach dem Setzen z.B. Log schreiben, vor dem Lesen ein Flag setzen oder sonst was).

Ich finde es am elegantesten gleich mit Interfaces zu arbeiten, wo Du dann auch gezwungen wärst ()Getter und Setter zu implementieren. Hier hast Du dann in den Tests auch den Vorteil, deine Klassen einfacher zu mocken (durch Testklassen auszutauschen).
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Frage zu Propertys

  Alt 3. Jun 2014, 11:42
Zitat:
Properties mit direkten Lese- und/oder Schreibzugriff auf Variablen sind meines Erachtens unsauber und "starr" (natürlich gibt es wirklich Ausnahmen, bei denen es sich für uns Delphi-Entwickler vielleicht wirklich nicht lohnt extra Getter/Setter anzulegen). Aber letztendlich entspricht das der Veröffentlichung einer Variable (also "public FVariable: Integer" (Lesen + Schreiben)) und ist auch in anderen Sprachen eher ein NoGo würde ich sagen.
Würde ich nicht so sehen. Denn eine Property abstrahiert den Zugriff auf die eigentliche private Variable.
Zitat:
Es macht meines Erachtens in den meisten Fällen durchaus Sinn sich die "Mühe" zu machen Getter und Setter zu schreiben, da man so viel flexibler ist. Außerhalb deiner Klasse hat es niemanden zu interessieren was Du intern machst (z.B. den Wert in die entsprechende Variable zu schreiben).
Wie gesagt eine Property abstrahiert.
Zitat:
Mit Flexibel meine ich: Du musst deine Property-Deklaration nicht anpassen wenn Du die interne Variable änderst (read/write Sektion) und Du kannst problemlos weitere Aktionen innerhalb der Getter und Setter antriggern, die im Laufe der Entwicklung vielleicht noch kommen (nach dem Setzen z.B. Log schreiben, vor dem Lesen ein Flag setzen oder sonst was).
Wenn sich der interne Typ ändert, kannst Du dann auch das read/write auf einen Getter/Setter setzen. Warum sollte man gezwungen werden Methoden zu implementieren, welche nichts machen?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.
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