π§ Statechart ΠΈ Spring State Machine: ΠΊΠΎΠ³Π΄Π° FSM ΡΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ State Machine. ΠΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ FSM Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡ. ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·ΡΠ°ΡΡΠ°Π΅ΡΡΡ ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ (ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠ΅) ΡΠΎΡΡΠΎΡΠ½ΠΈΡ - ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΡΠ΅ Π΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
- ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ (ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΠ΅) ΡΠΎΡΡΠΎΡΠ½ΠΈΡ: ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
- ΠΡΡΠΎΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ: ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
- ΠΡ ΠΎΠ΄Π½ΡΠ΅/Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ: Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»ΡΡΡΡΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ ΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
- ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²: ΠΠΎΠ³ΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΡΡΠΎ Π΅Π΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π² ΠΊΠΎΠ΄, ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Statechart β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ FSM, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΡΠ²ΠΈΠ΄ΠΎΠΌ Π₯Π°ΡΠ΅Π»ΠΎΠΌ Π² 1987 Π³ΠΎΠ΄Ρ. Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΡΠ°ΡΡΡ ΠΏΠΎ Statechart (Π·Π΄Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ) - https://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf. ΠΡΠΎ Π»ΡΠ±ΠΈΡ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΈΠ²ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΅ΡΠ΅ ΠΈ ΡΡΡ - https://is.ifmo.ru/works/pattern.pdf
πΊ Statechart: ΠΠ²ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ²
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ Statechart - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ (Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ), ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈ ΠΈΡΡΠΎΡΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠ΅ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Statechart:
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (Nested States): Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌ.
- ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (Concurrent/Orthogonal States): Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ. ΠΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
- ΠΡΡΠΎΡΠΈΡ (History Pseudo-States): ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² Π½Π΅Π³ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
- Entry/Exit Actions: ΠΠ΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· Π½Π΅Π³ΠΎ.
- Internal Transitions: ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π΅Π· Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π½Π΅Π³ΠΎ.
Statechart ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ UML (Unified Modeling Language), ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ. Statechart ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² workflow-Π΄Π²ΠΈΠΆΠΊΠ°Ρ ΠΈΠ»ΠΈ IoT-ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ .
β Spring State Machine: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Statechart Π½Π° Java
Spring State Machine (SSM) β ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Statechart Π΄Π»Ρ Spring-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π³ΠΈΠ±ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Spring-ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Spring State Machine:
- ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (Java-ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ XML).
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ: ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ.
- ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ: ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ.
- ΠΠ΅ΠΉΡΡΠ²ΠΈΡ (Actions): ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°ΠΌ, Π²Ρ ΠΎΠ΄Ρ/Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ.
- Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (Guards): Π£ΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°.
- Π‘ΠΎΠ±ΡΡΠΈΡ (Events): ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ².
- ΠΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ (Persistence): ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΠ).
- ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³: ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Spring Actuator Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Ρ.
- ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ: ΠΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· eclipse Papyrus framework (ΠΏΠΎΡΠ΅ΠΌΡ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π» Π½Π° Papyrus ΠΌΠ½Π΅ Π½Π΅ ΡΡΠ½ΠΎ, Π½ΠΎ Ρ ΠΎΡΡ ΡΠ°ΠΊ), Π²ΠΎΡ ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ - https://docs.spring.io/spring-statemachine/docs/current/reference/#sm-papyrus.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Spring State Machine Π΄Π»Ρ ΡΡΠ΅Π½Π°ΡΠΈΡ "ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°", Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΠ°ΠΏΡΠΎΡΠ° Ρ ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ
ΠΡΡΡΡ, Π½Π°ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ PROCESSING ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΏΠΎΠ΄ΡΠΎΡΡΠΎΡΠ½ΠΈΡ: INITIALIZING, EXECUTING, FINALIZING.
Π‘Π°ΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ StateMachine Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΠΊ:
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
π ΠΡΠ²ΠΎΠ΄Ρ
Statechart ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Spring State Machine, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠΎΡΠ½ΡΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², Π½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π΄Π΅Π»Π°Ρ State Machine Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π² Π°ΡΡΠ΅Π½Π°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠΎΠ΄ΠΏΠΈΡΠΈΡΡ Π½Π° ΠΌΠΎΠΉ ΠΊΠ°Π½Π°Π» Π² telegram