dedlfix: Problem mit fwrite();

Beitrag lesen

echo $begrüßung;

<gebetsmühle>Objektorientierung ist eine Denkweise und findet in den Köpfen der Programmierer statt. Es ist völlig unerheblich, ob diese Denkweise durch Eigenschaften des Compilers oder der Programmiersprache begünstigt wird; selbst in Assembler kann man objektorientiert programmieren.</gebetsmühle>

Deine Gebetsmühle mach die Aussage auch nicht richtiger. Selbstverständlich erkenne ich an, das man eine an die OOP angelehnte Denkweise auch auf Assembler-Niveau umzusetzen versuchen kann. Es fehlt jedoch letztlich die direkte Bindung zwischen Daten und Methoden. Die von dir und Tom gewünschte Verbindung beruht nur auf Sinnhaftigkeit. Funktionen und Daten bleiben getrennte Dinge. Bei dem, was landläufig als OOP bezeichnet wird, ist die Bindung jedoch durch die Programmiersprache und deren Compiler/Interpreter sichergestellt. Eigenschaften und Methoden bilden eine Einheit, _ein_ Objekt.

» Welcher Code ist denn direkt mit dem unter dem Begriff Handle zusammengefassten Datensammlung verbunden? Wenn du das als Objektorientierung ansiehst, wären sämtliche zusammenhängende Daten Objekte.
Richtig, so ist es - in Kombination mit Funktionen (OO-Anhänger nennen sie auch gern "Methoden"), die dafür vorgesehen sind, mit genau diesen Daten zu arbeiten.

Es wird kein Objekt daraus, nur weil bestimmte Vorgehensweisen für bestimmte Daten vorgesehen sind, sie aber letzlich keine Einheit bilden.

Doch, es ist objektorientiert, weil alle (oder zumindest alle notwendigen) Daten zu einer Struktur (einem "Objekt") zusammengefasst sind und dazu Funktionen existieren, die nur in Verbindung mit einer solchen Struktur sinnvoll arbeiten können.

Daten/Eigenschaften allein sind kein Objekt. Die für bestimmte Daten vorgesehenen Funktionen könnte man vielleicht vewendungszweckorientiert nennen.

Und wenn ich ein Codemodul programmiere, das einen bestimmten in sich abgeschlossenen und sinnvollen Funktionsumfang implementiert, nach außen (eine) klar definierte Aufrufschnittstelle(n) und Datentypen zur Verfügung stellt, ist das schon objektorientiert: Der Programmierer, der dieses Modul später wiederverwendet, muss nicht wissen, wie es intern realisiert ist (Kapselung), er kann es direkt gegen ein andersartiges mit gleicher Schnittstelle und nach außen hin gleicher Funktion austauschen (Polymorphie), und er kann ein eigenes Modul definieren, dessen Schnittstelle eine Obermenge ist und das weitergehende Möglichkeiten bietet (Vererbung). Damit wären die drei klassischen Paradigmen der OOP erfüllt.

Die Datenbindung als wesentliche Eigenschaft fehlt. Somit bleibt es nur VZOP.

echo "$verabschiedung $name";