Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Prinzipfrage: Wie hält man's mit OOP

  Alt 26. Jul 2007, 02:38
Grundsätzlich bietet sich für eine Bibliothekslösung ein objektorientierter Ansatz an.

Aber (großes aber): Die Frage ist, wie auf die Bibliothek zugegriffen werden soll. Bleibt man bei einer Sprache bzw. bei einem Framework, gibt es da sehr gute Wege. Will man aber eine weite Zahl von Plattformen und Programmiersprachen unterstützen, wird es sehr eng mit einer streng objektorienten Schnittstelle. Beispiel: Auf eine C-DLL kann ich mit fast jeder Programmiersprache zugreifen, bei C++ wird schon sehr schwierig. Und sowas wie COM ist halt schon wieder Windows-spezifisch.

Aber (nochmals ): Objektorientierung ist ja auch mit einer Sprache möglich, die mir dabei nicht hilft. Denn was ist Objektorientierung eigentlich? Eigentlich doch nur die Idee, dass ich bestimmte Datenstrukturen hab, die alle mehrmals vorkommen können, einen jeweils eigenen Zustand haben können und ich kann Nachrichten an diese schicken, die eine Änderung des Zustands des Objektes selbst (und andere Objekte) auslösen können. Bei der Realiserung hilft mir eine objektorientiere Sprache natürlich ungemein, ich kann aber auch ohne eine solche objektorientiert programmieren.

Konkretes Beispiel: Nehmen wir eine Komponente namens SimpleStupidComponent. Diese bietet die Operationen Op1, Op2 und Op3 sowie die Eigenschafften Prop1 und Prop2. Von der Idee her sind folgende Modellierungen gleich:

Delphi-Quellcode:
SimpleStupidComponent = class
  Prop1, Prop2: SomeType;
  procedure Op1;
  procedure Op2;
  procedure Op3;
end;
Delphi-Quellcode:
SimpleStupidComponent = record
  Prop1, Prop2: SomeType;
end;

procedure SimpleStupidComponent_Op1;
procedure SimpleStupidComponent_Op2;
procedure SimpleStupidComponent_Op3;
Die erste Modellierung ist natürlich komfortabler und lässt eine Vielzahl der Prüfungen bereits vom Compiler erledigen, während die zweite Lösung sehr viel Aufmerksamkeit des Programmiers fordert, aber objektorientiert sind beide Lösungen. Die zweite Lösungen lässt sich allerdings problemlos in eine Schnittstelle packen, die von nahezu jeder Programmiersprache verwendet werden kann.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat