Die Struktur der Objekte
Vor der Objektorientierung hatten Daten und Aktionen jeweils eigene getrennte Strukturen:
Die Daten hatten eine Struktur. Und die Aktionen hatten eine andere eigene Struktur.
Durch die Objektorientierung bekommen nun beide die gleiche Struktur aufgebrummt.
Für die Daten ist das nichts Neues. Die Daten fallen auf ganz natürliche Weise in die Struktur der Objekte. Die Daten hatten schon immer die Struktur der Objekte. Denn Objekte sind statisch, genau wie Daten auch der statische Aspekt von Software sind. Daten sind sozusagen die Repräsentation der Objekte innerhalb der Software.
Die Daten anhand der Objekte zu strukturieren ist das, was man schon immer gemacht hat und was sich wie von selbst ergibt.
Aber wie ist es mit den Aktionen?
Die Aktionen - der dynamische Aspekt von Software - müssen sich nun auch anhand der Objekte strukturieren. Genaugenommen sind die Objekte für die Aktionen schon die zweite Strukturebene, denn innerhalb der Objekte finden sich die Aktionen zunächst als Funktionen wieder.
Für die Aktionen ist die Objektstruktur nicht die Struktur, die sich natürlich und selbstverständlich ergeben würde. Und es ist auch nicht die Art, wie man die Aktionen strukturiert hat, bevor es die Objektorientierung gab.
Für die Aktionen kommt es durch die Objektstruktur zu einer Reihe von Verzerrungen:
- Es ergeben sich Trivialfunktionen: Es müssen Aktionen in Funktionen gepackt werden, für die man normalerweise ohne die erzwungene Objektstruktur gar keine Funktionen anlegen würde.
- Wiederholungen: Normalerweise packt man Dinge in Funktionen, um einen Ablauf an mehreren Stellen immer wieder verwenden zu können. Durch die Objektstruktur aber wiederholen sich nahezu identische Abläufe in mehreren Objekten immer wieder aufs Neue.
- Aufsplittung von Transaktionen: Transaktionen, die eigentlich zusammengehören werden durch die Objektgrenzen aufgesplittet auf mehrere Objekte.
Die Aktionen bekommen mit den Objekten eine Struktur aufgezwungen, die gar nicht wirklich zu ihnen passt.
Es ergibt sich die Frage: Warum tut man das? Gibt es einen Nutzen, der das rechtfertigt?
Bevor ich auf diese Frage eingehe, möchte ich näher erklären, was ich eigentlich meine mit "natürliche Struktur".