Existe alguma diferença clara entre o evento e o estado
-
21-12-2019 - |
Pergunta
Esta questão é um pouco filosófico e é como "dados e código são a mesma coisa ou não".
Existe alguma diferença clara entre o evento (sinal) e estado?
Exemplo:
Por exemplo, há uma passagem do carro pela estrada.Quando a buzina de um automóvel, um homem (man_A
) a atravessar a estrada pára de repente.Horn é o sinal, "man_A
pára de repente," é o estado de man_A
.
Outro homem (man_B
) estava atravessando a rua também, no mesmo tempo, no mesmo lugar.
Vamos considerar que man_B
era surdo, por isso ele não pode ouvir a buzina.Mas percebendo "man_A
parou de repente" seria um sinal para ele.Ele iria parar de repente, como se ele ouviu a buzina.
Então, eu diria: "Um estado pode ser um sinal para outro processo.Um sinal coloca um processo em outro estado.É por isso que eles são exatamente a mesma coisa"
Estou errado, existe uma clara diferença entre eles?
Um sinal é uma alteração de estado.Podemos definir qualquer sinal de dois estados.
Solução
Bem, um estado não é um sinal porque um sinal de vem em um determinado ponto específico no tempo.
Um estado-mudança é um resultado de um sinal e pode ser visto como um sinal de itsself.Mas não é o estado itsself.O estado continua a ser depois que o sinal é muito longe.
Como seria o estado inicial ser um sinal, por exemplo.
Outras dicas
Eles são muito, muito diferentes:
O mesmo evento pode causar transições para estados diferentes, dependendo do estado atual:
Em SCXML você pode ter
<parallel>
estados definição ortogonal regiões.Neste caso, um único evento pode desencadear múltiplas e simultâneas de transições para estados diferentes:
Além disso, devido à possível presença de
cond="…"
atributos de uma transição para outro estado poderá ou não ocorre quando acionado por um evento.Então, agora temos um evento que não pode mudar de estado.Além disso, é possível ter uma transição sem
event
atributo, causando uma alteração de estado assim que algumas modelo de dados de valor ou script resultado é certo.Então, agora, temos uma mudança de estado que pode acontecer com nenhum evento de disparo.