Menü mit Klasse?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

BlackJack hat geschrieben:Was für Menütypen denn? Wenn schon das Klappmenü ein künstliches Beispiel ist was man nicht verwenden würde.
Untermenüs könnte man noch definieren. Keine Ahnung jetzt wie das umsetzbar ist.
Und ein Klappmenü ist ein Menü das man auf Grund einer Menge von Einträgen ein- und ausklappen kann. Keine Ahnung warum ich das jetzt erklären muss. Aber ein Klappmenü ist eben was anderes wie ein einfaches Menü. Ein einfaches Menü ist ein kleines Menü, das keine Methoden zum ein- und ausklappen braucht.
Ich denke man sollte schon ein komplettes Beispiel als Ziel haben, das alle Aspekte von Vererbung beisammen hat und vererbte Attribute und Methoden die in Unterklassen verwendet werden und auch Polymorphie beinhaltet. Eben um zeigen zu können was Klassen ausmacht und wo die Vorteile liegen.
Man muss sich halt bei den Vorgaben beschränken.
Was ist der Nutzen von so einem Klappmenü? Was ist der Nutzen von Klassen? Gibt es überhaupt nicht-künstliche Beispiele die nicht trivial sind, wo man sich nicht fragt, warum nehme ich da nicht einfach eine Funktion? Klassen sind im Grunde erst ab einer gewissen Komplexität des Programms wirklich nützlich. Erfahrenere Programmierer benutzen sie auch an Stellen, wo sie nicht zwingend notwendig sind, aber das eben aus der Erfahrung heraus, dass Programme dazu tendieren mit der Zeit komplexer zu werden. Wobei Python noch das zusätzliche "Problem" hat, dass alles Objekt ist, inklusive Funktionen. Wo andere Sprachen für das Observer-Entwurfsmuster schon Interfaces und Klassen brauchen, kann man in Python einfach eine Callback-Funktion übergeben.
Du hast natürlich mit allem Recht, wenn es darum geht als tatsächlicher Programmier zu agieren. Ich kann in meinem Hauptfach aber auch nicht so rangehen, auch wenn es rein theoretisch richtig ist.
Ich muss immer berücksichtigen was die Lehrziele sind. Das kann sein, dass die lernende Person ausübender GitarristIn werden soll, es können aber auch sein, dass der Person mit der Ausübung des Instruments lediglich sozio-musikalische Kompetenzen vermittelt werden sollen.

Die Unterschiede im Unterricht sind dann gewaltig.

Und wieso kann man mit Fahrzeugklassen nicht den Mehrwert von OOP darstellen? `opel.beschleunigen()` wird wahrscheinlich auf geerbte Attribute aus einer `Fahrzeug`-Klasse zurückgreifen. Um einen neuen Autotyp zu implementieren kann man also auf vorhandene Funktionalität zurückgreifen, aber wenn man will, diese auch komplett ersetzen/überschreiben.

Wenn man eine Liste mit verschiedenen konkreten Fahrzeugttypen hat, kann man prima Polymorphie zeigen. Es wird immer "automagisch" die richtige Methode ausgeführt, weil ein Objekt "weiss" was es ist.

Was "richtiges" kann man daraus auch machen indem der Lehrer ein Framework vorgibt, wo die Schüler ihre eigenen Fahrzeuge programmieren können und dann irgendetwas damit machen müssen. Ein Rennen, oder vielleicht irgendwelche Nutzfahrzeuge die zusammen eine Aufgabe erfüllen müssen.
Das lass ich dich gern so machen. Du würdest das auch sicherlich gut machen. Ich sehe keine Möglichkeit das in meiner Umgebung umzusetzen.

Liebe Grüße

rolgal_reloaded
BlackJack

*Was* das Klappmenü macht war mir schon klar, nur der Sinn des ganzen nicht. So ein GUI-Element habe ich in einer ``print``-basierten Text-UI noch nie gesehen und würde es auch nicht einsetzen. Und Du wolltest doch unbedingt ein sinnvoll verwendbares Beispiel nehmen.

Die Beziehung von Menü zu Untermenü sehe ich weniger in der Klassenhierarchie als in der Objekthierarchie. Beispielsweise so:

http://paste.pocoo.org/show/1436/

Die Rückgabe von Werten ist natürlich nicht so toll. Besser wäre es gleich "callables" in den Einträgen zu haben und das Menüobjekt diese bei Auswahl aufrufen zu lassen.
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

BlackJack hat geschrieben:*Was* das Klappmenü macht war mir schon klar, nur der Sinn des ganzen nicht. So ein GUI-Element habe ich in einer ``print``-basierten Text-UI noch nie gesehen und würde es auch nicht einsetzen. Und Du wolltest doch unbedingt ein sinnvoll verwendbares Beispiel nehmen.
Wenn du meine inzwischen mehrfach ausgeführten Erklärungen akzeptiert hättest, die auch akzeptierbar sind, dann ist doch klar was "sinnvoll verwendbar" meint.
Menüklassen kann ich...... - nein nochmal führe ich es nicht aus:-)

Die Beziehung von Menü zu Untermenü sehe ich weniger in der Klassenhierarchie als in der Objekthierarchie. Beispielsweise so:

http://paste.pocoo.org/show/1436/

Die Rückgabe von Werten ist natürlich nicht so toll. Besser wäre es gleich "callables" in den Einträgen zu haben und das Menüobjekt diese bei Auswahl aufrufen zu lassen.
Vielen Dank für das Beispiel!
Werde ich mir sicherlich ansehen und mich damit beschäftigen, du musst aber damit rechnen, dass es mich auf - aus deiner Sicht - nicht sinnvoll verwendbare Ideen bringt :D

Liebe Grüße

rolgal_reloaded
rolgal_reloaded
User
Beiträge: 312
Registriert: Dienstag 24. Oktober 2006, 19:31

BlackJack hat geschrieben:*Was* das Klappmenü macht war mir schon klar, nur der Sinn des ganzen nicht. So ein GUI-Element habe ich in einer ``print``-basierten Text-UI noch nie gesehen
Das mit dem noch nie gesehen halte ich aber für ein schlechtes Argument etwas nicht zu programmieren. Wenn so gemeint wie geschrieben, dann hätte man noch nie was programmieren dürfen :D

LG

r_r
Antworten