Есть ли четкая разница между событием и состоянием?
-
21-12-2019 - |
Вопрос
Этот вопрос немного философский и звучит так: «данные и код — это одно и то же или нет».
Есть ли четкая разница между событием (сигналом) и состоянием?
Пример:
Например, по дороге проезжает машина.Когда машина гудит, мужчина(man_A
) переходя дорогу, внезапно останавливается.Рог – это сигнал»,man_A
внезапно останавливается» — это состояние man_A
.
Другой человек (man_B
) тоже переходил дорогу в то же время и в том же месте.
Давайте рассмотрим это man_B
был глухим, поэтому не мог слышать гудок.Но осознав"man_A
внезапно остановился» будет для него сигналом.Он внезапно останавливался, как будто слышал гудок.
Поэтому я бы сказал: «Состояние может быть сигналом для другого процесса.Сигнал переводит процесс в другое состояние.Вот почему они абсолютно одинаковы»
Я ошибаюсь, есть ли между ними явная разница?
Сигнал – это изменение состояния.Мы можем определить любой сигнал с двумя состояниями.
Решение
Ну, состояние не является сигналом, потому что сигнал поступает в определенную конкретную точку во времени.
Состояние -
Как начальное состояние будет сигналом, например.
Другие советы
Они очень и очень разные:
Одно и то же событие может вызывать переходы в разные состояния в зависимости от текущего состояния:
В SCXML вы можете иметь
<parallel>
состояния, определяющие ортогональные области.В этом случае одно событие может вызвать несколько одновременных переходов в разные состояния:
Кроме того, из-за возможного присутствия
cond="…"
атрибуты, переход в другое состояние может или может нет происходят, когда вызвано событием.Итак, теперь у нас есть событие, которое может не изменить состояние.Кроме того, возможен переход без
event
атрибут, вызывающий изменение состояния, как только какое-либо значение модели данных или результат сценария окажется правильным.Итак, теперь у нас есть изменение состояния, которое может произойти без какого-либо триггерного события.