Реализуйте конечный автомат в ООП

Я думаю о реализации программы с конечным автоматом на языке ООП как Java или C++.

Что было бы Вы думать, что лучший способ состоит в том, чтобы реализовать это с управляемой суммой доступных состояний, относительно к хорошей разработке программного обеспечения?

Действительно ли хорошо реализовать для каждого состояния собственный класс? Если да, как сделать мост между двумя состояниями?

Спасибо за любой комментарий!

1
задан Bill the Lizard 16 June 2010 в 13:00
поделиться

2 ответа

Это просто для тренировки ваших программистов или для реального проекта и т. Д.? В любом случае это зависит от того, для чего вы хотите, чтобы конечный автомат: - это для управления задачами в каком-то рабочем процессе - это для определения состояния потока приложения - это для механизма бизнес-правил и т. д.

В случае проекта, я бы посоветовал вам искать библиотеки в этом домене, в зависимости от вашего целевого использования. Например, в Java есть МНОГО МНОГИХ библиотек для рабочих процессов / бизнес-потоков, а также множество механизмов правил (Drools сразу приходит в голову, хотя это сложный бегемот)

2
ответ дан 2 September 2019 в 23:44
поделиться

Попробуйте это - раздел о дизайне хорош и показывает использование fsm http://www.ibm.com/developerworks/library/wa-finitemach1/

Еще одно использование, которое я видел, - реализация управляемых объектов для компьютерной службы с переходом «начало», перемещающим объект из «вниз» в «начальное» состояние и т. д. с использованием расширения жизненного цикла управляемого объекта OMG

0
ответ дан 2 September 2019 в 23:44
поделиться