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 gastar la masa para que yo experimentara con HSM (máquinas de estado jerárquicas) usando QP. Tuve que implementar el mío que era similar a QP cuando refactorizaba una máquina de estado horrible que ocupaba cientos de líneas de código como el ejemplo de Joby, pero multiplicado por 1000. El diseño antiguo que se tomó prestado para poner en funcionamiento las características en un plazo ajustado Fue un dolor terrible de mantener. Temía tratar de 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 modificarlo y mantenerlo de lo que podría soñar. Incluso tuve que rehacer gran parte de la máquina de estado, debido a un comportamiento inesperado en el sistema. Fue mucho más fácil arreglarlo con el marco que había creado, y estoy seguro de que habría 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 nuestra base de código.
Tuve un amigo que implementó el marco cuántico usando Java en un robot que funcionó bastante bien. Formaba parte del algoritmo de toma de decisiones del robot basado en ciertas entradas. Fue un ajuste natural, dadas las decisiones que tuvo que tomar en función del estado del robot.
Lo que entiendo de la belleza de QP es la capacidad de tener un marco listo para un diseño de máquina de estado que esté optimizado para su procesador y no tener que depender de las herramientas CASE que escupen código ineficiente. Pero, solo usaría QP si tiene un conjunto complejo de máquinas de estado para implementar que describa 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 estados crece y crece con todo tipo de declaraciones "si no" envueltas en torno a diferentes condiciones ... entonces podría ser el momento de intentar algo como QP para descomponerlo en HSM.