Ich baue einen Simulator, der einige Ereignisse analysiert STDIN
und "ausführt". Mein Hintergrund ist heutzutage hauptsächlich funktionale Programmierung, daher schien es naheliegend, so etwas zu tun:
data Event = Thing1 String Int | Thing2 Int | Thing3 String String Int
Parse :: String -> [Event]
Simulate :: [Event] -> [Result]
wo simulieren wäre
case event
of Thing1 a b => compute for thing one
| Thing2 a => compute for thing two
usw. Was ist die idiomatische Art, solche Dinge in Java zu tun? Googeln hat mich in Richtung verschachtelter Klassen und des Besuchermusters gelenkt, aber das scheint bei meinem Versuch ziemlich schwer zu sein. Typ Löschung scheint mich hart zu bekämpfen. Können Sie mir einen Überblick darüber geben, wie das richtig gemacht aussehen würde?
Event
Typ beispielsweise konzeptionell gleichbedeutend mit einsInt
und zweiMaybe Strings
?