Objektorientiert!!!



  • Hi!
    Ich habe bevor ich den Petzold gelesen habe ein Buch über C++ gelesen und dort auch obrjektorientiert programmieren gelernt.
    Aber irgendwie wird im Petzold überhaupt nicht objektorientiert gearbeitet.Es wird keine einzige Klasse deklariert und so.Warum?



  • Der Petzold beschreibt eine prozedurale API, und wie man diese typischerweise benutzt. Auf diesem Niveau lohnt sich OO einfach nicht, es würde die Programme nur sinnlos aufblähen. Zum anderen ist es in C nicht unbedingt üblich, objektorientiert zu programmieren, da die Sprache diesen Stil nicht unterstützt.



  • Was bedeutet denn prozedurale API?
    Die soäteren Programme werden doch schon etwas komplizierter!
    Aber was bedeutet prozedrale API?



  • Mit prozeduraler API meine ich, dass diese API aus Prozeduren und Funktionen besteht, die du aufrufen kannst. Diese sind wiederum von den Datenstrukturen, mit denen sie arbeiten, getrennt.
    BTW hab ich nicht gesagt, dass die Programme nicht kompliziert sind. Sie sind aber nur kompliziert, weil sie komplizierte API-Features benutzen.



  • Man sollte sich auch immer darüber klarwerden, wozu OO eigentlich gut ist, wann es geeignet ist und wann nicht - leider werden solche Konzepte (und Rezepte) immer als das einzig wahre Alheilmittel verkauft, ohne über Motivation, Vor- und nachteile nachzudenken.

    Schließlich hat man jahrelang Prozedural programmiert - d.h. Man hat das problem solange in kleinere Brocken geteilt, bis die einzelnen Brocken "hinreichend einfach" sind. Die Daten sind getrennt entweder als Funktionsparameter übergeben oder Global.

    Das ging auch ziemlich gut - bis zu bestimmten Projektgrößen (bei C++ glaub ich ein paar 10.000 Zeilen). Dann handelt man sich probleme ein - der prozedurale Ansatz vernachlässigt das Daten-Design, die verfügbaren Funktionen werden schwer überschaubar, es entstehen hohe Abhängigkeiten zwischen den einzelnen Bibliotheken, außerdem handelt man sich technsiche Probleme wie z.B. Namenskonflikte ein.

    Interessanterweise stoßt man mit einem klassischen OO-Ansatz bei etwa der 10-fachen Projektgröße auf ähnliche Probleme.


Anmelden zum Antworten