Я думаю о реализации программы с конечным автоматом на языке ООП как Java или C++.
Что было бы Вы думать, что лучший способ состоит в том, чтобы реализовать это с управляемой суммой доступных состояний, относительно к хорошей разработке программного обеспечения?
Действительно ли хорошо реализовать для каждого состояния собственный класс? Если да, как сделать мост между двумя состояниями?
Спасибо за любой комментарий!
Это просто для тренировки ваших программистов или для реального проекта и т. Д.? В любом случае это зависит от того, для чего вы хотите, чтобы конечный автомат: - это для управления задачами в каком-то рабочем процессе - это для определения состояния потока приложения - это для механизма бизнес-правил и т. д.
В случае проекта, я бы посоветовал вам искать библиотеки в этом домене, в зависимости от вашего целевого использования. Например, в Java есть МНОГО МНОГИХ библиотек для рабочих процессов / бизнес-потоков, а также множество механизмов правил (Drools сразу приходит в голову, хотя это сложный бегемот)
Попробуйте это - раздел о дизайне хорош и показывает использование fsm http://www.ibm.com/developerworks/library/wa-finitemach1/
Еще одно использование, которое я видел, - реализация управляемых объектов для компьютерной службы с переходом «начало», перемещающим объект из «вниз» в «начальное» состояние и т. д. с использованием расширения жизненного цикла управляемого объекта OMG