Verkopplung
Objektorientierung zwingt Daten und Aktionen die gleiche Struktur auf, nämlich die Struktur der Objekte.
Es handelt sich hierbei um eine doppelte Verkopplung:
- Daten und Aktionen bekommen die gleiche Struktur aufgezwungen
- Daten und Aktionen bekommen die Struktur der Objekte aufgezwungen
Aber was bedeutet Verkopplung?
Ich benutze den Begriff als Gegenteil zu Entkopplung.
Daten und Aktionen müssen die gleiche Struktur haben. Sie dürfen nicht voneinander verschiedene Strukturen haben.
Ich hatte bereits die doppelte Verkopplung erwähnt. Nicht genug damit, dass Daten und Aktionen die gleiche Struktur haben müssen, nein, es muss auch noch die Struktur der Objekte sein.
Das schränkt den Lösungsraum (die Menge der in Frage kommenden Lösungen) empfindlich ein. Es ist klar, dass eine ganze Dimension mehr Lösungen möglich wären, wenn Daten und Aktionen voneinander verschiedene Strukturen haben dürften. Alle Lösungen, bei denen Daten und Strukturen - so wie es vor der Objektorientierung üblich war - verschiedene Strukturen haben, werden von vornherein aus der Lösungsfindung ausgeschlossen.
Eine solche Einschränkung wäre dann zulässig, wenn die Lösungen der verbleibenden kleineren Lösungsmenge tatsächlich die besseren wären.
Und das sind sie aber nicht, denn die Objektstruktur ist für die Aktionen absolut ungeeignet.
Objekte sind statisch. Sie eignen sich als Strukturmittel für den statischen Teil der Software - die Daten, nicht aber für den dynamischen Teil der Software - die Aktionen.
Aktionen strukturieren sich auf natürliche Weise zu Transaktionen. Aktionen bilden die Prozesse, in die die Objekte eingebunden sind. Die Aktionen bilden - übertragen gesprochen - das Drama, in dem die Objekte auftreten. Wie kann man da die Aktionen anhand der Objektgrenzen strukturieren wollen?
Das passt GAR NICHT - von einigen wenigen Ausnahmen abgesehen, über die wir noch sprechen werden.
Objektorientierung zwingt den Aktionen eine Struktur auf, die nicht zu ihnen passt.