Мне нужно реализовать недетерминированный FSM, поэтому мне пришла в голову идея определения класса FSM, который содержит состояния и переходы (которые могут зависеть или не зависеть от состояний других автоматов, но должны зависеть от событий / input) для каждого объекта и добавление статического std :: map в класс, который будет регистрироваться каждым FSM при создании. Таким образом, на событиях / входах каждый FSM может при необходимости просматривать состояние других FSM и вести себя соответствующим образом, не объединяя все FSM в один огромный детерминированный FSM.
Это работает для одного NFSM, и это все, что мне нужно сейчас, но может быть расширено, если потребуется больше? Что-то принципиально не так с этим дизайном?