Hallo,
»» Ein Handle ist ein Index in eine Ressource-Tabelle. Das ist so eine frühe Art von Objektorientierung ;-)
Wo ist denn da was mit Objektorientierung?
<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>
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.
»» Alle Filesystemfunktionen arbeiten nun mit dieser Ressourcetabelle und müssen sich deshalb von dort erst ein gültiges Handle anfordern:
"... und müssen ein gültiges Handle bekommen" träfe es wohl besser.
Dazu müssen sie es aber explizit übergeben bekommen. Ist ja schließlich nicht objektorientiert (auch nicht im Frühstadium).
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.
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.
So long,
Martin
Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
Außer bei Microsoft. Da ist es umgekehrt.