Utilizarea "State Machine"-ilor (SM) este larg rapandita in programare. Un SM este un automat de stari programat sa execute anumite functii in corelatie cu anumite evenimente si semnale externe.
Decizii de design :
– Reprezentarea evenimentelor
– Reprezentarea starilor
– Reprezentarea tranzitiilor
– Distribuirea evenimentelor catre StateMachine
Metode si modele de creere a unui SM :
– Switch-uri imbricate
– Tabel de stari
– OO State Design Pattern
– Abordare mixta
Cereintele unui SM:
– Intretinerea simpla
– Utilizarea memoriei minimala
– Eficienta
Reprezentarea comuna a unui SM:
Metoda Switch-urilor imbricate
- Starile si evenimentele sunt reprezentate de enumeratii - Cel puțin două niveluri ale declarațiilor de comutare; una pentru expedierea statului, celălalt pentru selectarea semnalului.
- Acțiuni de tranziție sunt puse în aplicare în declarația de comutare a selectarii semnalului
Pro:
– Simpla și pe scară largă instituit
– Amprenta de memorie mică (o singură variabilă care conține starea)
Contra:
– O posibilitate redusă de refolosire a codului
– Distribuirea liniara in timp a evenimentelor si a semnalelor
Exemplu:
Decizii de design :
– Reprezentarea evenimentelor
– Reprezentarea starilor
– Reprezentarea tranzitiilor
– Distribuirea evenimentelor catre StateMachine
Metode si modele de creere a unui SM :
– Switch-uri imbricate
– Tabel de stari
– OO State Design Pattern
– Abordare mixta
Cereintele unui SM:
– Intretinerea simpla
– Utilizarea memoriei minimala
– Eficienta
Reprezentarea comuna a unui SM:
Metoda Switch-urilor imbricate
- Starile si evenimentele sunt reprezentate de enumeratii - Cel puțin două niveluri ale declarațiilor de comutare; una pentru expedierea statului, celălalt pentru selectarea semnalului.
- Acțiuni de tranziție sunt puse în aplicare în declarația de comutare a selectarii semnalului
Pro:
– Simpla și pe scară largă instituit
– Amprenta de memorie mică (o singură variabilă care conține starea)
Contra:
– O posibilitate redusă de refolosire a codului
– Distribuirea liniara in timp a evenimentelor si a semnalelor
Exemplu: