Теория операции: прохождение конечных автоматов .
Когда прикладной класс принимает событие , он вызывает активный экземпляр .совершить событие.
В этом вызове прикладной класс передаёт входными параметрами номер полученного события и ссылки (дескрипторы) как КМС ,которые необходимо пройти ,так и экземпляра, который получил событие.
Затем операция совершить событие использует текущее состояние активного экземпляра и вызывает операцию КМС .пройти.
Операция КМС.пройти представляет каждый переход .КМС на рассмотрение внешнему модулю переход.соответствовать до тех пор ,пока он не сообщит ,что обнаружен переход соответствующий номеру события и текущему состоянию, и что известно соответствующее значение для нового состояния .
Операция КМС.пройти теперь возвращает новое состояние активному экземпляру.совершить событие,которое модифицирует состояние активного экземпляра и возвращает его значение вызывающему прикладному классу.
Если операция КМС.пройти исчерпает список переходов без получения успешного ответа из модуля переход.соответствовать, то мы столкнулись с ячейкой не может произойти из таблицы переходов в состояние .Это указывает на то что произошла ошибка либо в анализе либо в реализации.
Теория операции:инициализация.
Инициализация механизма конечного автомата полностью заключена в создании соответствующего экземпляра КМС и перехода .Это выполняется прикладными классами . Для этого существует три операции:
1.КМС.создать
2.КМС.добавить переход
3.переход.соответсвовать
Инициализация начинается ,когда прикладной класс вызывает КМС.создать .В свою очередь это принимает текстовую строку для КМС и возвращает ссылку для вновь созданного КМС.
После того как прикладной класс вызвал КМС.создать он вызывает переход.создать один раз для каждой ячейки своей таблицы переходов в состояние.Переход.создать создаёт переход и вызывает КМС.добавить переход для компоновки перехода в структуру данных КМС.Затем переход.создать возвращает управление прикладному классу .
