Vermischung im Objektbegriff
Eines der größten Probleme der Objektorientierung ist, dass der Objektbegriff für 3 völlig unterschiedliche Dinge gebraucht wird, die für ein klares Verständnis eigentlich glasklar unterschieden werden müssten, was natürlich auch eine begriffliche Unterscheidung impliziert.
- Die Objekte der Anforderungsebene: Das ist, womit die Software in ihrem Anwendungszweck zu tun hat. Das sind "die natürlich existierenden Objekte aus dem Umfeld der Software", z.B. Anwender, Gruppen, Konten, Texte, Preise, Bilder usw.
- Die Objekte der Strukturebene, auch Designebene: Das ist, wie die Software strukturiert wird. , z.B. Datenbank
- Objekte als Konstrukte einer Programmiersprache: Objekte als Sprachelemente einer Programmiersprache.
Die Vermischung, die hier dadurch zustande kommt, das 3 völlig unterschiedliche Dinge in einem Begriff vermischt werden, hat eine Reihe von Nachteilen:
- Verwirrung und Unverständnis
- Es werden Zusammenhänge hergestellt, die eigentlich so nicht existieren. Es wird ein Zusammenhang suggeriert zwischen den Objekten der Anforderungsebene, der Softwarestruktur und der programmtechnischen Realisierung.
Letzteres ist natürlich Absicht, aber es werden dadurch viele gute (überhaupt alle guten) Lösungen von vornherein ausgeschlossen. Und zwar werden sie auf eine manipulierende, vernebelnde Weise ausgeschlossen. Der Programmierer hat gar keine freie Entscheidungsmöglichkeit mehr, weil er mit diesem Begriffsapparat die Alternativen nicht mehr blickt.