Große Unklarheiten bezüglich objektorientierter Programmierung bei Stackoverflow


Sucht man einmal gezielt nach einem Fragetyp bei Stackoverflow wird man feststellen, dass es sehr viele davon gibt. Konkret geht um es um eine Frage, bei dem der User wissen möchte wie er eine Variable oder Methode in „another class“ aufruft bzw. verändert. Meist hat er zwei Klassen und möchte jetzt aus Klasse A auf Klasse B zugreifen und weiß nicht wie. Geschätzt gibt es von dieser Frage bei Stackoverflow mehr als 1000 die eingestellt wurden. Und im Regelfall ist dazu die Beteiligung der Community hoch. Entweder wird die Frage vorsorglich downgevoted nach dem Motto wer so eine Frage stellt hat ungenügendes Wissen bezüglich OOP oder aber die Antworten versuchen mit mehr oder klugen Hinweisen auf nested Classed, static methods oder übergebenen Parametern die Frage halbwegs zu beantworten. Leider ist die einzig richtige Antwort nur sehr selten darunter. Sie lautet, dass über Multilevel inheritance man meherere Klassen zusammenschalten kann und danach jede Variable im Programm von überall aus manipulieren kann. Das gilt für jede Programmiersprache egal ob Python, Java, C++ oder PHP.

Lediglich in einem Fall hat ein User als Teilantwort auf Vererbung hingewiesen, das aber nur als eine Möglichkeit unter vielen erläutert und dann auch nur in Verbindung mit 2 Klassen, nicht jedoch mit 3 oder mehr. Dieses massive Wissensdefizit rührt daher, dass Multilevel-inheritance selbst in us-amerikanischen Büchern zum Thema objektorientierte Programmierung nur selten thematisiert wird. Obwohl es mächtiger wie auch leichter verständlich ist als sein großer Bruder, die multiple Inheritance. Zumindest dem Namen her dürfte das vielen bekannt sein, aber relevant für die Praxis war das nie.

Der Witz ist, dass das Wissensdefizit bei Stackoverflow eklatant ist und sich so in Zukunft fortsetzen kann. Im Grunde kann man schon die Uhr danach stellen, dass auch nächste Woche wenigstens 10 Fragen erneut wissen wollen, wie man denn in einer „another class“ Zugriff auf die Variablen nimmt. Und um fair zu sein, ist das sogar die wichtigste Frage die man als Einsteiger in die objektorientierte Programmierung stellen kann. Denn, man hat ja im Schritt 1 sich schon an die Vorgaben gehalten und seine Programm in einzelne Klassen unterteilt und fast automatisch gibt es dadurch das oben genannte Problem. Der Normalfall ist, dass die User eine Klasse mit der GUI haben wo sie dann in C++, Java oder in einer sonstigen Sprache die Bildschirmdarstellung erledigen und in einer zweiten Klasse sind dann die Daten und die Programmlogik des Programms. Jetzt ergibt sich fast schon auf natürlichem Wege die Frage wie das eine mit dem anderen gekoppelt wird, das also die Datenklasse Textfelder in der GUI verändert und die GUI Eingabedaten an das Hauptprogramm sendet. Das bisher den regelmäßigen Teilnehmern bei Stackoverflow die mit ihrem Wissen prahlen und als Antwortgeber in Erscheinung noch nicht aufgefallen ist, dass die üblichen Antworten möglicherweise unvollständig oder sogar falsch sind, zeigt deutlich auf dass in der Programmierer-Community offenbar eine Lernresistenz existiert. Und ja, mit einem simplen multiple Inheritance lassen sich fast alle dieser Probleme lösen man muss das Konzept nur kennen.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s