Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Interface-Unterstützung

  Alt 3. Sep 2017, 12:53
So könnte der Compiler einfach normale Getter und Setter erzeugen bzw. voraussetzen, wenn im Interface
property X: Interger read write; steht.
Entweder konnten function _get_X: Integer; und procedure _set_X(const aValue: Integer); physisch im Code eingebaut werden oder der Compiler tut einfach so, als würden die dort stehen...
Die Logik, dass der Setter SetXyz und der Getter GetXyz heißt, gibt es in Delphi ja schon. Da braucht man nicht mit den unsäglichen Unterstrichen anfangen. In anderen Sprachen sind die üblich, in Delphi entsprechend des Styleguides kein guter Programmierstil. Und das finde ich auch gut so.

Ich finde was die Idee angeht einfach, dass man schon explizit schreiben müssen sollte was man meint. Solch eine Automatik führt nur zu Missverständnissen und Bugs.
Ich merke immer wieder mal, dass ich in anderen Sprachen mehrfach hinschauen muss was genau eigentlich gemeint ist, während es in Delphi einfach so klar ist. Ich finde, dass man diese Einfachheit durchaus beibehalten sollte.

Ich will einfach weniger schreiben müssen und weniger Redundanzen haben.
Redundanz, klar, das ist ein Argument, aber das mit dem weniger schreiben wollen finde ich als Entwickler unangebracht. Denn gute Bezeichner usw. sollten ohnehin nicht ganz kurz sein usw., so dass man ohnehin nicht schreibfaul sein sollte, wenn man guten Code schreiben möchte.

Und insbesondere bei Interfaces und Klassen gibt es ja nicht mehr zu schreiben, sondern das wäre im Gegenteil mit der angedachten neuen Lösung der Fall. Aktuell schreibe ich die Deklaration einmal und kopiere diese dann herüber in Interface oder Klasse, je nachdem. Der Schreibaufwand wäre also höher, wenn man in Klasse und Interface unterschiedlich aussehende Deklarationen benutzen würde. Denn die müsste man dann ja wirklich manuell doppelt schreiben...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat