Personalmente no he usado el framework / biblioteca QP, debido a la licencia GPL. En ese momento, no creía que mi empleador estuviera listo para desechar la masa para que yo experimentara con las HSM (máquinas de estado jerárquicas) usando QP. Tuve que implementar el mío que era similar a QP cuando estaba refactorizando una máquina de estado horrible que ocupaba cientos de líneas de código como el ejemplo de Joby pero en 1000. El viejo diseño que se tomó prestado para que las funciones funcionaran en un plazo ajustado Fue un dolor terrible de mantener. Temía intentar agregarle algo nuevo por miedo a romper algo más.
Rediseñé el código en un HSM que tenía mucho más sentido para mí personalmente sobre cómo debería comportarse el sistema. Funcionó mucho mejor de lo que podía imaginar. Era mucho más fácil de modificar y mantener, de lo que jamás podría soñar. Incluso tuve que casi rehacer gran parte de la máquina de estado, debido a un comportamiento inesperado en el sistema. Fue mucho más fácil de arreglar con el marco que había hecho, y estoy seguro de que hubiera sido igual de fácil en QP. El marco que construí se hizo popular y se extendió a otras máquinas de estado complejas dentro de nuestro código base.
Hice que un amigo implementara el marco cuántico utilizando Java en un robot que funcionó bastante bien. Era parte del algoritmo de toma de decisiones del robot basado en ciertas entradas. Era natural, dadas las decisiones que tenía que tomar según el estado del robot.
Lo que entiendo de la belleza de QP es la capacidad de tener un marco listo para el diseño de una máquina de estado que está optimizado para su procesador y no tener que depender de las herramientas CASE que escupen un código ineficaz. Pero, solo usaría QP si tiene un conjunto complejo de máquinas de estado para implementar que describan su diseño.
Si todo lo que tienes es algo tan simple como el ejemplo de Joby, entonces hazlo como él explicó. Pero si encuentra que su máquina de estado está creciendo y creciendo con todo tipo de declaraciones "en caso contrario" en torno a diferentes condiciones ... entonces podría ser el momento de probar algo como QP para dividirlo en HSM's.