Конечный автомат с сохраненным состоянием базы данных, это нормально? - PullRequest
0 голосов
/ 28 января 2020

Я работаю над проектом, в котором кто-то предложил использовать шаблон конечного автомата , чтобы справиться с переходом между различными конечными состояниями. Итак, у нас есть класс с именем StateMachineImpl с методом sendEvent , который получает событие , содержащее некоторую полезную нагрузку (идентификатор ) на основе которого он переводит из текущего состояния в другое состояние . Внутренне StateMachineImpl не имеет переменной экземпляра (он же fields ) и является одиночным, предназначенным для использования несколькими одновременными потоками. При выполнении метода sendEvent объект StateMachineImpl загружает (в локальную переменную ) текущее состояние из базы данных, используя идентификатор получено с событием , затем выполните обработчик перехода, затем сохраните новое состояние (если оно отличается от предыдущего) обратно в базу данных.

Это допустимая реализация шаблона конечного автомата? что-то не так с этим подходом?

...