Я особисто не використовував рамки / бібліотеку QP через ліцензію GPL. У той час я не думав, що мій роботодавець готовий викашлювати тісто для мене, щоб експериментувати з HSM (ієрархічними машинами стану) за допомогою QP. Мені довелося реалізувати своє, що було схоже на QP, коли я переробляв жахливу машину, яка займала сотні рядків коду, як приклад Джобі, але часів 1000. Старий дизайн, який був запозичений для отримання функцій, працював у жорсткий термін був страшний біль для підтримки. Я боявся додати до нього щось нове, боячись зламати щось інше.
Я переробив код на HSM, що мало для мене більше сенсу щодо того, як повинна вести себе система. Це працювало набагато краще, ніж я міг собі уявити. Це було набагато легше змінювати і підтримувати, тоді я коли-небудь міг мріяти. Мені навіть довелося майже переробити велику частину державної машини через несподівану поведінку в системі. Так було набагато простіше виправити рамки, які я створив, і я впевнений, що це було б так само просто в QP. Створена мною структура стала популярною і розповсюдилася на деякі інші складні державні машини всередині нашої бази даних.
У мене був друг, який реалізував квантовий фреймворк, використовуючи Java у робота, який досить добре вийшов. Це було частиною алгоритму прийняття рішень робота, заснованого на певних введеннях. Це було природним чином, враховуючи рішення, які він повинен був приймати, виходячи із стану робота.
Я розумію красу QP - це можливість мати готові рамки для дизайну державної машини, оптимізованої для вашого процесора, і не потрібно покладатися на інструменти CASE, що випльовують неефективний код котла. Але я б застосував QP лише у тому випадку, якщо у вас є набір складних наборів державних машин, які описують ваш дизайн.
Якщо все, що у вас є, є настільки простим, як приклад Джобі, тоді просто робіть це так, як він пояснив. Але якщо ви виявите, що ваша державна машина росте і зростає зі всілякими заявами "якщо інакше", що обговорюються в різних умовах ... то, можливо, настав час спробувати щось на зразок QP, щоб розбити її на HSM.