Ich versuche, eine kleine Taschenrechneranwendung zu bilden und OOPS Konzepte zu erlernen. Ich sah this talk. Es zeigt, wie Polymorphie verwendet werden kann, um Switch-Anweisungen zu vermeiden.Erhalte die korrekte Kindklasseninstanz ohne Schalterfall
Ich habe 4 Bedientasten in meiner app (+
, -
, /
, *
). Ich verwende 2 Stacks für Operatoren und Operanden. Wenn der Benutzer auf einen beliebigen Tastenoperanden oder Operator tippt, versuche ich einen Infixbaum für den aktuellen Ausdruck zu erstellen und den Operator im Operator-Stack zu halten. Wenn der Benutzer auf "calculate" (Berechnen) klickt, gehe ich durch den Operator-Stack und passe den Infix-Baum basierend auf der Operator-Priorität an.
Ich habe abstrakte Node
Klasse, ValueNode
->Node
, abstrakte operatorNode, AddNode -> operatorNode, SubtractNode
->OperatorNode
und so weiter.
Mein Code ist von folgendem Link inspiriert, falls die obige Beschreibung nicht klar ist.
Mein Problem ist, wie kann ich korrekte Kind-Klasse-Objekt basierend auf dem Operator char aus dem Stapel ohne Verwendung von Schalter erstellen?
So, da char (+
oder -
oder *
oder /
) Wie erstelle ich AddNode
oder SubtractNode
ohne Schalter.
Anstatt Ihren Code zu beschreiben, veröffentlichen Sie ihn. Es wird einfacher zu verstehen und Ihnen helfen. – Guy