Schöner Programmierstil

Flo<H>

Erfahrenes Mitglied
Hallo,

mir kommen in der Arbeit immer wieder einige Sourcecode-Konstrukte unter, die ich nicht "schön" finde. Aber manchmal bin ich mir auch nicht sicher, ob meine Version besser ist. Hier für den Anfang einmal zwei Beispiele. Mich würde interessieren was ihr davon haltet. Ach ja, die Beispiele sind aus der Java-Welt.

1. private static final String FOOBAR = "...";
- macht das static hier Sinn?
- die Namenskonvention ist bei statischen Variablen meines Wissens, dass man alles groß schreibt, ist das in diesem Fall auch noch richtig?

2. Null-Prüfung bei Objekthierarchie
Angenommen man hat eine eine Objekthierarchie und will den Wert eines Kindobjekts auslesen, z.B.
object1.getObject2().getObject3().getObject4().getValue()
Jedoch ist nicht sichergestellt, dass object2 - 4 nicht null sind. Wie würdet ihr das abprüfen? Hier zwei Möglichkeiten, so wirklich glücklich bin ich aber mit beiden nicht:
Code:
if(object1.getObject2() != null) {
   Object2 object2 = object1.getObject2();
   if(object2.getObject3() != null) {
      Object3 object3 = object2.getObject3();
      if(object3.getObject4() != null) {
         Object4 object4 = object3.getObject4();
      } else {
      }
   } else {
   }
} else {
}

Code:
Object2 object2 = object1.getObject2();
if(object2 == null) {
   return;
}

object3 = object2.getObject3();
if(object3 == null) {
   return;
}

Vielleicht kann man die Sachen auch gar nicht pauschal lösen, würde mich aber trotzdem über eure Meinungen freuen!

Gruß
flo
 

Der Wolf

Erfahrenes Mitglied
Hallo,

was die static Variable angeht: Ist das eine Konstante die im Kontext der Klasse Sinn macht, dann static, denn man will sie ja nur einmal irgendwo im Speicher liegen haben. Beispielsweise Math.PI. Wäre sie nicht static würde ja immer, wenn Speicher für eine Instanz der Klasse bereitgestellt wird, zusätzlich Speicher für die Variable angelegt, obwohl sie sich niemals ändert und für alle Instanzen den gleichen Wert hat.

Was die Prüfung angeht, hängt das denke ich viel vom persönlichen Programmierstil und Coding-Guidelines ab. Es gibt zum Beispiel Guidelines wo man nur ein "return" Statement pro Methode zulässt, dass dann natürlich am Ende stehen muss. In dem Fall wäre deine Variante 2 ausgeschlossen, auch wenn ich sie persönlich insgesamt übersichtlicher finde.

Gruß,
Wolf
 

Neue Beiträge