AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Property -> Getter und Setter mit Parametern
Thema durchsuchen
Ansicht
Themen-Optionen

Property -> Getter und Setter mit Parametern

Ein Thema von bernau · begonnen am 28. Jan 2015 · letzter Beitrag vom 29. Jan 2015
 
Dejan Vu
(Gast)

n/a Beiträge
 
#15

AW: Property -> Getter und Setter mit Parametern

  Alt 29. Jan 2015, 06:48
Ein Array oder eine StringList oder sonst eine Struktur, die über einen Index angesprochen werden kann. In diesem Fall könnte ich mir auch eine Name-Value-Liste oder ein Dictionary vorstellen.
Das hat ja dann meistens etwas mit Persistenz zu tun und -wupps- habe ich wieder Zuständigkeiten vermischt.

Und selbst wenn es nichts mit Persistenz zu tun hat, ist es unsauber, denn die Tatsache, das der Wert 'FooBar' an Stelle 3 im Array stehen soll, ist somit an mehreren Stellen definiert. Ausnahme: Das Array ist ein Ersatz für private Felder. D.h. im Getter/Setter steht nur der Zugriff auf das Array. Dann...Nun ja. Spart man keine Tipparbeit, sondern hat einen Mapper geschrieben.

Die Motivation des TE ist TIPPARBEIT SPAREN und nicht, Konstrukte für Index-Properties zu finden, die sinnvoll sind.

Ein case halte ich für ziemlich unwahrscheinlich - habe ich jedenfalls noch nie gesehen. Ist aber vollkommen irrelevant, denn der Getter ist ja gerade dazu da, die tatsächliche Implementierung zu kapseln.
Wer Tipparbeit sparen will, macht leider Folgendes (z.B.):
Delphi-Quellcode:
Procedure TMyClass.SetValue (Value : TSomeType;Index : Integer);
begin
  case Index of
    0 : StringValues[0] := Value.AsString;
    1 : IntegerValues[0] := Value.AsInteger;
  ...
end;
Das Beispiel stammt aus meinem uralten Code. Kapselung dient ja nicht dazu, schlechten Code zu verbergen. Sollte es zumindest nicht.


Delphi-Quellcode:
var
   x : TCustomSpeicherobjekt;
begin
   x := TCustomSpeicherobjekt.Create;
   x['Host'] := 'www.delphipraxis.net';
Das spart auch Tipparbeit.
'Host' wird ja noch an einer anderen Stelle verwendet (beim Lesen nämlich). Und wenn man sich beim 'Host' vertippt hat? Meckert der Compiler natürlich nicht und es führt zu Laufzeitfehlern, die schwer zu finden sind. Beispiel: 'Нost' vs. 'Host' (Das 'H' im ersten Host wurde von meinem russischen Kollegen getippt).

Delphi ist nun mal eine Programmiersprache, die von Tastaturherstellern gesponsort wird...

Geändert von Dejan Vu (29. Jan 2015 um 07:22 Uhr)
  Mit Zitat antworten Zitat
 


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:06 Uhr.
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-2025 by Thomas Breitkreuz