Hi,
ich bin dabei folgendes zu programmieren:
Es gibt einen Sender und einen Empfaenger. Der Sender sendet einen string der art command/parameter1/parameter2
es gibt ne ueberschaubare menge and commands und maximal 4 parameter.
Der Empfaenger bekommt den strink und dann kann man natuerlich schoen tokens machen, hat das command und baut sich dann eine if/else Konstruktion.
Geht das aber nicht eleganter, irgendwie objektorientierter?
Ich kenne das Interpreter Pattern, aber das passt hier nicht so wirklich, da nicht ein Ausdruck interpretiert werden soll, sondern es geht hier mehr um delegation. Problem ist, dass ja die methode, die die tokens macht, ja auch die ganze logik enthaelt um die entsprechenden aktionen zu machen, also z.B. eine datei offnen, was schreiben, oder schliessen.
Hat jmd. eine idee, obs dafuer nicht ein pattern oder sowas gibt?
thx
Interpretieren eines commandos mit Parametern
nutzt doch einfach ein dictionary für dein dispatching
Code: Alles auswählen
def say_hello(name):
print "hello %s" % name
def say_goodbye(name):
print "goodbye"
commands = {
'hello' : sayhello
'goodbye' : say_goodbye
}
command, params = parse(input)
try:
commands[command](*params(
except Exception, e:
print "something went wrong: %s" % e
Die einzelnen commands würde ich eine Funktion oder eine Methode bearbeiten lassen. Diese würde ich anhand eines dicts auswählen welches du entweder von Hand erstellst oder zur Laufzeit z.B. über einen Dekorator.