

Designing a State Machine without conditionals - joelcorrea
http://jjcorrea.github.io/2015/05/05/designing-a-state-machine-without-conditionals/

======
chipsy
The diagram resembles a decision table:

[http://en.m.wikipedia.org/wiki/Decision_table](http://en.m.wikipedia.org/wiki/Decision_table)

~~~
readme
Does the rest of the article seem to resemble a state machine to you, or do
you see an obvious way that the classes he wrote could be used to create a
state machine? Because I do not.

~~~
joelcorrea
Hi,

The main peculiarity about this solution is that on this case we had a complex
input type, where a transition on an inner element may influence the state on
the outer element.

For example, given the following structure:

\- A1 (state=1)

\-- B1 (state=2)

\--- C1 (state=5)

\-- B2 (state=3)

If the state of C1 changes, then this change should be considered by the B
predicates, and so should the A predicates.

After all, for the example in specific we are returning all the updated
statuses in a list, as in our case we needed to show what was the difference
on the overall state after the execution.

~~~
sachakilinski
Nice article! After deeper thoughts i finally realized what bothers me about
it: It doesn´t address the inner dependencies between those transitions. By
your comment above, it´s not a big deal because of this kind of hierarchical
structure you described, but it was not clear when i first read it.

