Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 26 Style-Guide
gp 26.1 Programmierrichtlinien
gp 26.2 Allgemeine Richtlinien
gp 26.3 Quellcode kommentieren
gp 26.3.1 Kommentartypen
gp 26.3.2 Strategischer und taktischer Kommentar
gp 26.3.3 Bemerkungen über JavaDoc
gp 26.3.4 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.5.4 Funktionen
gp 26.6 Ausdrücke
gp 26.7 Anweisungen
gp 26.7.1 Schleifen
gp 26.7.2 Switch, case und Durchfallen
gp 26.8 Reihenfolge der Eigenschaften in Klassen
gp 26.9 Zugriffsrechte und Zugriffsmethoden
gp 26.9.1 Accessors/Zugriffsmethoden
gp 26.10 Verweise


Galileo Computing

26.9 Zugriffsrechte und Zugriffsmethodendowntop

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.9.1 Accessors/Zugriffsmethodentoptop

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.

Da die Einführung der Methoden oft sehr aufwändig ist, ist im Entwicklungsteam abzusprechen, ob nicht nur setXXX()-Methoden implementiert werden sollten. Lesender Zugriff kann ein Objekt nicht verändern und ist somit weniger gefährlich. Damit geben wir natürlich die Unabhängigkeit gegenüber der internen Implementierung der Klasse auf. Auf der anderen Seite bieten moderne Entwicklungsumgebungen Tastenkürzel an, mit denen zu einem Attribut automatisch die Zugriffsmethoden erstellt werden.

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 (c) 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