Mir gefällt nicht, wie in unserem Code mit Statusfeldern (etwa der Finanzstatus einer Order) umgegangen wird, nämlich in dem die Übergangsregeln irgendwie hartkodiert wurden. Auf der anderen Seite will ich möglichst keine super-komplizierte Rule-Engine, sondern eine einfache, leichtgewichtige Lösung, um die Status-Übergänge sauber abzubilden.
Der DSL-Ansatz von bbvfsm gefällt mir schon ganz gut, aber hier fehlt mir die Möglichkeit, eine State-Engine zu laden (aus XML oder besser aus einer DB), so dass verschiedene Instanzen unserer Anwendung unterschiedliche Regeln verwenden können. Der Code ist unter unserer Kontrolle, also muss die Lösung auch nicht super-flexibel sein (es wäre z.B. kein Problem, wenn das Status-Feld immer ein Enum sein muss oder so).
Wie habt ihr solche Probleme gelöst, und welche Erfahrungen habt ihr dabei mit Rule Engines oder endlichen Automaten gemacht?
Der DSL-Ansatz von bbvfsm gefällt mir schon ganz gut, aber hier fehlt mir die Möglichkeit, eine State-Engine zu laden (aus XML oder besser aus einer DB), so dass verschiedene Instanzen unserer Anwendung unterschiedliche Regeln verwenden können. Der Code ist unter unserer Kontrolle, also muss die Lösung auch nicht super-flexibel sein (es wäre z.B. kein Problem, wenn das Status-Feld immer ein Enum sein muss oder so).
Wie habt ihr solche Probleme gelöst, und welche Erfahrungen habt ihr dabei mit Rule Engines oder endlichen Automaten gemacht?