AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Properties Public, Getter/Setter protected, Felder private

Properties Public, Getter/Setter protected, Felder private

Ein Thema von Der schöne Günther · begonnen am 18. Jun 2013 · letzter Beitrag vom 19. Jun 2013
Antwort Antwort
Seite 1 von 2  1 2   
Der schöne Günther

Registriert seit: 6. Mär 2013
5.117 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 16:24
Ich erstelle es bewusst in 'Klatsch und Tratsch' da es wahrscheinlich vollkommener Blödsinn ist.

Vor Urzeiten, als Moral und Anstand noch etwas galten, war ich der Meinung die Getter/Setter immer mit 'protected'-Sichtbarkeit auszustatten, üblich scheint private zu sein. Heute kann ich mir keinen Reim mehr darauf machen, warum ich mir das angewöhnt habe.

Könnte ich damals irgendeinen Grund gehabt haben? Auch wenn ich vor ein paar Jahren schonmal Berührungspunkte mit Delphi hatte: Als ich mir das angewöhnt habe, war das wahrscheinlich nicht unter Delphi sondern irgendwo anders. Fällt jemandem etwas ein?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.344 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 16:26
  1. Man kann sie virtuell machen und überschreiben.
  2. Man kann sie auch in abgeleiteten Klassen als Implementation eines Interfaces verwenden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.922 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 16:28
Evtl. hast Du mal einen Getter/Setter virtuell oder gar abstrakt deklariert, in dem Fall wäre er im private-Abschnitt ja schlecht aufgehoben.

[edit] Uwe war schneller [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.117 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 16:29
Natürlich

Hauptmotivation war, die Getter/Setter in der Unterklasse wieder überschreiben zu können.


Großer Gott, es muss die Hitze sein.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.799 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 18:31
Mach Dir nix draus. Emba versteht das selbst auch nach Jahren nicht.

Ich dachte ja wenigstens, dass das mit der VCL-Alternative FMX jetzt mal neu organisiert wird... Umsonst gedacht!

Was ich mich schon geärgert habe deswegen. Ein QC-Eintrag bringt natürlich auch nix.
Nicht nur, dass man so funktionale Ableitungen kaum umsetzen kann, auch Bugfixes sind dadurch schwer möglich.

Und dabei wäre bei einer entsprechenden Beachtung nicht einmal ein Mehraufwand damit verbunden gewesen.

Regel Nr1: Methoden virtual oder static definieren
Regel Nr2: Private Abschnitte im Regelfall vermeiden.

Ich könnte mich gleich wieder...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.117 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 18:55
Ja, die Class Completion packt auch immer die Getter und Setter in den private-Abschnitt. Auf die Schnelle habe ich auch nicht gefunden, wo man das in den Templates irgendwie abändern könnte - Das ist in der Class Completion wohl hart verdrahtet...
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 19:00
Also ich würde mich hüten, alles, was mal überschrieben werden könnte, als 'protected virtual' zu deklarieren. Und wieso sollte man private Abschnitte vermeiden? Mach doch gleich alles "public virtual", weil: Man kann nie wissen wozu das nützlich sein könnte...



Die Außenwelt soll so wenig wie möglich über die Implementierung wissen und auch nur so wenig wie möglich verändern können. Genau genommen sollte nur das *nicht* private sein, was abgeleitete Klassen unbedingt wissen müssen und nur das als 'virtuell' deklariert werden, das -einmal überschrieben- das Wesen der Klasse nicht verändert und auch in seinem Sinne ist.

Aber klar, ich kann auch eine Klasse 'Dingens' deklarieren, die alles virtuell deklariert und aus der ich dann alles ableiten kann... Das ist aber dann kein OOP mehr, sondern MOORKS
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.799 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 18. Jun 2013, 19:45
Das kommt auf den Blickwinkel an.

In der DP sind schon oft Bugs von Standardkomponenten beklagt wurden, die sich wegen privaten Feldern und/oder Methoden nicht beheben ließen (obwohl das sonst vielleicht mit 2 Zeilen behoben wäre).

Außerdem siehst Du das automatisch anders, wenn Du häufig allgemeine eigene Klassen erstellt bzw. von anderen Klassen ableitest.

Wenn eine Klasse protected virtual aufgebaut ist gibt sie genau so viel oder wenig preis, wie eine private. Allerdings wird späteren/anderen Entwicklern ermöglich, Korrekturen, Verbesserungen bzw. Veränderungen einzubauen. Ich sehe da keinen Nachteil sondern finde das weitsichtig.
(Wer sein Derivat vermurkst hat dann ja selbst Schuld.)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.117 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 19. Jun 2013, 08:58
Mach doch gleich alles "public virtual", weil: Man kann nie wissen wozu das nützlich sein könnte... [...] Das ist aber dann kein OOP mehr, sondern MOORKS
Großer Gott, Entschuldigung! (Für die globale Zerstörung der OOP)

Wenn eine Klasse protected virtual aufgebaut ist gibt sie genau so viel oder wenig preis, wie eine private. Allerdings wird späteren/anderen Entwicklern ermöglich, Korrekturen, Verbesserungen bzw. Veränderungen einzubauen.
Ganz genau das. Eine Unterklasse ist nicht die Außenwelt.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Properties Public, Getter/Setter protected, Felder private

  Alt 19. Jun 2013, 09:02
Großer Gott, Entschuldigung!!
Boah, nicht nur schön, sondern auch kreativ, der Günther.

Wenn ich Dir auf deinen goldenen(?) Schlips getreten bin oder auf deine Kroko-Schuhe, tut es mir echt leid. Ich wische sie sofort mit meinem rosa Tütü-Seidenserviettchen ab und poliere sie mit meiner Straußenpfeder.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf