Announcement

Collapse
No announcement yet.

OOP Anfängerfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OOP Anfängerfrage

    Hallo,
    ich arbeite schon länger mit Delphi, bisher überwiegend mit Datenbanken. Jetzt wird mir mehr und mehr bewusst, das ich zwar mit Objekten arbeite, aber irgendwie auch wieder nicht. Eigene Klassen / Objekte hatte ich noch nicht. Geht auch, aber vielleicht geht es "mit" noch besser.
    Aber wann habe ich es mit einer Klasse zu tun und was macht eine Klasse aus.
    Die Apfelgeschichte ist mir klar, ich weiß auch, das z.B. Kunde eine Klasse ist, aber wenn ich mit z.B. Interbase arbeite ist der Kunde ja schon ein Objekt der Klasse Record aus der entsprechenden Tabelle. Vielleicht habe ich auch nur einen Haken im Kopf, an dem ich immer hängenbleibe. Theorie ist da, nur die Praxis fehlt.
    Gibt es irgendwelche Literatur dazu, wie ich Klassen / Objekte "erkennen" kann ?

    Danke

    Gruß Rolf

  • #2
    Hallo,

    >Eigene Klassen / Objekte hatte ich noch nicht.

    das ist ja gerade der Sinn von Delphi. Die hohe Produktivität als RAD-Tool (Rapid Application Development) wird doch erreicht, indem die vorgefertigten Komponenten das zeitaufwendige (mühsame) Erstellen eigener Klassenbäume unnötigt machen. Die Komponenten-orientierte Programmierung ist quasi der produktive "Nachfolger" von OOP (und die Service-orientierte Programmierung ist der "Nachfolger" der Komponenten-orientierten Programmierung, indem der kleine Baustein <i>Komponente</i> durch eine größere komplette Baugruppe ersetzt wird).

    Eine Datenbank-Anwendung ist das beste Beispiel. Anstelle die Datenbank-Tabelle selbst in eine Klasse zu verpacken (jede Spalte der Tabelle wird eine Eigenschaft) und eigenen Methoden für das Auslesen und Speichern zu schreiben, übernehmen die TDataSet-Nachfolger diese Aufgabe. Über die persistente TFields-Kollektion wird das gleiche Ziel erreicht - nur mit dem Unterschied, dass für uns als Entwickler ein einziger Mausklick ausreicht (weil sich die IDE um den Rest - siehe die DFM-Datei des Projekts - selbst kümmert).

    &gt;..Interbase arbeite ist der Kunde ja schon ein Objekt der Klasse Record aus der entsprechenden Tabelle.

    Gerade bei einer SQL-Datenbank kommt zusätzlich das Problem dazu, dass die Datenbank auf dem relationalen Prinzip aufbaut und mit Datenmengen arbeitet. Wenn man trotzdem die Tabelle in eigene Objekte kapseln will, muss man zusätzlich einen Adapter dazwischenschalten, der die grundsätzlichen Unterschiede zwischen der mengenorientierten relationalen Datenbank und der eigenen Einzel-Instanz bezogenen OOP-Architektur der Anwendung überbrückt. Im Java-Lager sind derartige O/R-Mapper häufiger anzutreffen, aber dort spielt - um das einmal überspitzt zu formulieren - Produktivität/Performanz ja auch keine Rolle.

    Borland stellt mit ECO den "Java-Way-of-Live" auch in den Architect-Versionen von Delphi 8/2005 zur Verfügung, wobei aber dort im Interesse der Produktität die IDE die für die Umverpackung genötigten Klassen selbst generiert. Im BDNTV-Video (siehe <i>http://community.borland.com/article/0,1410,32761,00.html</i>) kann man sich ein erstes Bild davon machen.

    ECO ist auch ein Beispiel für ein weiteres Dilemma mit dem eigenen Klassen-Ansatz. Als die Idee von der Klassen-Umverpackung geboren wurde, war es üblich, dass eine Anwendung in mehreren Jahren geschrieben wurde und dann auch eine Dekade im produktiven Einsatz war. Während dieser Zeit war die Programmpflege einfacher (da OOP-umverpackt). Heute welchseln die Technologien aber viel schneller, so dass sich die Frage stellt, ob der höhere Entwicklungsaufwand/Einarbeitungsaufwand später jemals durch den niedrigeren Pflegeaufwand kompensiert werden kann. Denn im Fall von ECO ist ja nur nach einem Jahr mit ECO II bereits ein Nachfolger da, der intern ein grundlegend geändertes Fundament nutzt. Bereits jetzt ist absehbar, dass sich auch die nächste Version weiterentwickeln wird.

    &gt;Theorie ist da, nur die Praxis fehlt.

    Im rauhen Alltag sieht nach kurzer Zeit so manche verlockende Theorie nur noch grau aus ;-

    Comment


    • #3
      Hallo,
      Danke für die Antwort. Eigentlich logisch. Aber manchmal sieht man den Wald vor lauter Bäumen nicht, und wenn dann noch die "neuesten" Trends dazu kommen ...

      Danke nochmal !

      Rol

      Comment

      Working...
      X