Moja maszyna stanu najwyższego poziomu ma pewne stany i krawędzie. Nazywam to nadrzędną maszyną stanu.
A ----> B ----> C
Dowolny stan w nadrzędnej maszynie stanów może być również maszyną stanów. Nazwę te dzieci stanowymi maszynami.
___________
/ \
A ----> | B0->B1->B2 | ----> C
\____________/
Jeśli nadrzędna maszyna stanu przechodzi z A do B, maszyna stanu B przejmuje kontrolę. Po zakończeniu działania B, w jaki sposób powinien on zrzec się kontroli nad maszyną stanu nadrzędnego i przejść do stanu C? Jakiego wzoru projektu używasz?
Jeśli zastanawiasz się, mam podrzędne maszyny stanu w nadrzędnych maszynach stanu, ponieważ mój dokładny projekt jest dość złożony i naturalne jest, że enkapsuluję wewnętrzne działania stanu podrzędnego.
MachineContainer
klasę,B
która zawiera B0, B1 i B2, a kiedy B2 się skończy, przekazuje kontrolę z powrotem do swojego kontenera, który następnie przechodzi do C ... Nigdy jednak nie próbowałem czegoś takiego. To interesujący problem!