La mia macchina a stati di livello superiore ha alcuni stati e bordi. Chiamerò questo la macchina dello stato genitore.
A ----> B ----> C
Qualsiasi stato all'interno della macchina a stati padre può essere anche una macchina a stati. Chiamerò queste macchine statali per bambini.
___________
/ \
A ----> | B0->B1->B2 | ----> C
\____________/
Se la macchina a stati padre passa da A a B, subentra la macchina a stati B. Una volta che B ha terminato l'esecuzione, come dovrebbe abbandonare il controllo alla macchina a stati padre e passare allo stato C? Quale modello di design usi?
Se ti stai chiedendo, ho macchine a stati figlio all'interno di macchine a stato genitore perché il mio progetto esatto è piuttosto complesso ed è naturale incapsulare il funzionamento interno di uno stato figlio.
MachineContainer
classe perB
quella che contiene B0, B1 e B2 e quando B2 finisce, passa il controllo al suo contenitore che poi passa a C ... Non ho mai provato niente del genere però. È un problema interessante!