Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5 (Tiger-Release)
Buch: Java ist auch eine Insel
gp Kapitel 26 Style-Guide
  gp 26.1 Programmierrichtlinien
  gp 26.2 Allgemeine Richtlinien
  gp 26.3 Quellcode kommentieren
    gp 26.3.1 Strategischer und taktischer Kommentar
    gp 26.3.2 Bemerkungen über JavaDoc
    gp 26.3.3 Gotcha-Schlüsselwörter
  gp 26.4 Bezeichnernamen
    gp 26.4.1 Ungarische Notation
    gp 26.4.2 Vorschlag für die Namensgebung
  gp 26.5 Formatierung
    gp 26.5.1 Einrücken von Programmcode – die Vergangenheit
    gp 26.5.2 Verbundene Ausdrücke
    gp 26.5.3 Kontrollierter Datenfluss
  gp 26.6 Ausdrücke
  gp 26.7 Reihenfolge der Eigenschaften in Klassen
  gp 26.8 Zugriffsrechte und Zugriffsmethoden
    gp 26.8.1 Accessors/Zugriffsmethoden
  gp 26.9 Verweise


Galileo Computing

26.8 Zugriffsrechte und Zugriffsmethodedowntop

Der Zugriff auf öffentliche (public) Variablen beziehungsweise auf für die Nachkommen lesbare Variablen (protected) soll vermieden werden. Damit verhindern wir verschiedene Probleme:

gp  Eine öffentliche Variable widerspricht der Kapselung von Daten. Von außen kann jeder stets die Variable ändern, und dies kann zu Fehlern führen, die schwer zu finden sind.
gp  Die interne Repräsentation der Daten wird versteckt und erlaubt es, den Programmcode später noch einmal problemlos zu ändern. Die Klasse muss ihre Arbeitsweise verstecken und den Benutzer der Klasse nicht dazu zwingen, sein Programm immer der Klasse anzupassen.
gp  Auch protected-Variablen haben ihre Schwächen, da die abgeleitete Klasse auf diese Attribute direkt zugreifen kann. Die Basisklasse ist dann für immer an die Variablen gebunden und kann sie niemals in ihrer Bedeutung verändern oder gar auf sie verzichten, da die Variable ja von irgendeiner Unterklasse benutzt werden könnte.

Diese Probleme können wir leicht umgehen, wenn wir zwei Dinge berücksichtigen:

gp  Auf Variablen wird nur lesend zugegriffen. Da dies leider oft nicht streng genug durchgehalten wird, ist es empfehlenswert, für
gp  alle Änderungen an Variablen (auch wenn nur die erbende Klasse Elemente der Basisklasse verändert) Funktionen wie getAttribut() und setAttribut() einzuführen.

Galileo Computing

26.8.1 Accessors/Zugriffsmethoden  toptop

Zugriffsmethoden erlauben uns, an die Attribute eines Objekts heranzukommen. Das Motiv für ihren Einsatz ist oben schon genannt worden. Die Funktionen getAttribut() und setAttribut() sind solche Accessoren. Die Vorsilben get(-Methode) und set(-Methode) sind auch als eine Art Präfix anzusehen, wie er in der ungarischen Notation vorgesehen ist. Ebenso ist es zweckmäßig, is als Vorsilbe anzusehen, die eine Wahrheitsabfrage macht; isChar() ist ein Beispiel für einen Accessor mit boolean-Ergebnis. Leider haben Accessoren den Nachteil, dass sie den Code aufblähen. Doch angesichts der erhöhten Flexibilität ist dies in Kauf zu nehmen. Wenn sich später einmal die Implementierung ändert, müssen die Programmzeilen nicht verändert werden. Dafür kann sich dann hinter der vermeintlich trivialen Funktion etwas ganz anderes verbergen.

Wenn wir Zugriffsfunktionen einführen, dann müssen wir natürlich auf die beabsichtigten Rechte für die darunter liegenden Attribute achten. Sollen diese nach außen sichtbar sein, so sind auch die Zugriffsfunktionen public. Sind die Werte nur für die Erben wichtig, so sollen die Funktionen protected deklariert werden. Nach Einführung der Zugriffsfunktionen werden die zugehörigen Objektvariablen private gesetzt.

Moderne Entwicklungsumgebungen bieten Tastenkürzel an, mit denen zu einem Attribut automatisch die Zugriffsmethoden erstellt werden, so dass der manuelle Aufwand gering bleibt.

Allgemeines

Wir müssen versuchen, unseren Programmcode in den Funktionen so weit zu strukturieren, dass er nicht mehr als ein bis zwei Seiten lang ist. Ein längerer Text ist schwer zu durchschauen und bei der Fehlersuche schwerer zu testen. Jedoch ist ein langes switch mit vielen cases weniger schlimm als achtfach geschachtelte Schleifen und Fallunterscheidungen.





Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de