Der Milliarden-Dollar-Fehler

Kennen Sie Prof. Antony Hoare? Nein? Aber Sie kennen sicherlich Null Pointer Exceptions bzw. Null Reference Exceptions? Jeder von uns hat Angst vor diesem Fehler, denn jedem ist schon mehrmals dieser Fehler unterlaufen und passiert immer wieder. Oder hat einen in anderen Programmen in den Wahnsinn getrieben. Es dürfte der Fehler Nr. 1 in der Software-Entwicklung sein. » Weiterlesen

Java – immutable Objects

Wenn wir Software entwickeln, ist eines unserer Ziele unvorhersehbare Seiteneffekte zu vermeiden. Ich war mal vor knapp zehn Jahren in einem Projekt, in dem ein Kollege bei aufgetauchten Fehlern im System zum Auftraggeber sagte „Oh! Das ist leider ein Seiteneffekt.“. Irgendwann meinte der Auftraggeber genervt „Ich will das Wort Seiteneffekt nicht mehr hören!“.

Wie kann man solche Fälle minimieren? Ein Punkt ist die richtige Datenkapselung, wie ich hier bereits zeigte. Ein weiterer Punkt ist, Daten einfach unveränderlich zu machen. Denn wodurch entstehen mysteriöse Seiteneffekte? Wenn sich Objekte im Wert ändern, ohne das man es selbst veranlasst oder mitbekommen hat! » Weiterlesen

Javas kaputte Datenkapselung

Meiner Erfahrung nach werden in Objekt-Orientierungs-Diskussionen folgende drei Punkte genannt, auch in dieser Priorität, die die Objektorientierung ausmachen sollen:

  1. Vererbung von Klassen
  2. Schnittstellen
  3. Kapselung

Ist Vererbung wirklich das was Objektorientierung ausmacht? Immerhin ist Vererbung nicht bei jeder Klasse notwendig, sondern nur von Fall zu Fall nötig. Streichen wir also den ersten Punkt von unserer Liste!

Die Schnittstellen, also Funktionen einer Klasse, ermöglichen die Kommunikation mit dem Objekt. Die Klasse kapselt ihre Eigenschaften (Daten) und ermöglicht nur über die Schnittstellen den Zugriff auf die Eigenschaften. Die Daten sollen vor direkter Manipulation geschützt werden, um eine Blackbox zu simulieren.

Ich sehe regelmäßig Java-Code, in dem die Blackbox-Regel gebrochen wird. Viele Programmierer meinen, wenn sie die Daten einer Klasse als Privat deklarieren, ist alles gut.

» Weiterlesen

1 5 6 7 8