Реализация конечного автомата в ООП - PullRequest
1 голос
/ 16 июня 2010

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 16 июня 2010

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

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

0 голосов
/ 02 марта 2012

Библиотека dk.brics.automaton является хорошей реализацией FSA в Java. Он построен с учетом производительности, поэтому он использует некоторые принципы ООП для скорости, но я бы посоветовал вам взглянуть на это.

0 голосов
/ 16 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...