![]() |
Properties Public, Getter/Setter protected, Felder private
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? |
AW: Properties Public, Getter/Setter protected, Felder private
|
AW: Properties Public, Getter/Setter protected, Felder private
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] |
AW: Properties Public, Getter/Setter protected, Felder private
Natürlich :wall:
Hauptmotivation war, die Getter/Setter in der Unterklasse wieder überschreiben zu können. Großer Gott, es muss die Hitze sein. |
AW: Properties Public, Getter/Setter protected, Felder private
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! :wall::wall::wall: 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... |
AW: Properties Public, Getter/Setter protected, Felder private
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...
|
AW: Properties Public, Getter/Setter protected, Felder private
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...
:wall: 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 |
AW: Properties Public, Getter/Setter protected, Felder private
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.) |
AW: Properties Public, Getter/Setter protected, Felder private
Zitat:
Zitat:
|
AW: Properties Public, Getter/Setter protected, Felder private
Zitat:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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