TIP
מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית
זרימת אירועים
ב-FlowEngine, כל רכיבי הממשק הם מונעי אירועים (Event-driven).
ההתנהגות, האינטראקציה ושינויי הנתונים של רכיבים מופעלים על ידי אירועים ומבוצעים באמצעות זרימה.
זרימה סטטית מול זרימה דינמית
ב-FlowEngine, ניתן לחלק זרימות לשני סוגים:
1. זרימה סטטית
- מוגדרת על ידי מפתחים בקוד;
- פועלת על כל המופעים של מחלקת Model;
- משמשת בדרך כלל לטיפול בלוגיקה כללית של מחלקת Model;
2. זרימה דינמית
- מוגדרת על ידי משתמשים בממשק;
- נכנסת לתוקף רק על מופע ספציפי;
- משמשת בדרך כלל להתנהגות מותאמת אישית בתרחישים ספציפיים;
בקיצור: זרימה סטטית היא תבנית לוגית המוגדרת על מחלקה, בעוד שזרימה דינמית היא לוגיקה מותאמת אישית המוגדרת על מופע.
כללי קישוריות מול זרימה דינמית
במערכת התצורה של FlowEngine, קיימות שתי דרכים ליישם לוגיקת אירועים:
1. כללי קישוריות
- הם עטיפות (encapsulations) של שלבי זרימת אירועים מובנים;
- פשוטים יותר להגדרה ובעלי משמעות סמנטית חזקה יותר;
- בעצם, הם עדיין צורה פשוטה של זרימת אירועים (Flow).
2. זרימה דינמית
- יכולות תצורת Flow מלאות;
- ניתנים להתאמה אישית:
- טריגר (on): מגדיר מתי להפעיל;
- שלבי ביצוע (steps): מגדירים את הלוגיקה שתבוצע;
- מתאימים ללוגיקה עסקית מורכבת וגמישה יותר.
לכן, כללי קישוריות ≈ זרימת אירועים מפושטת, ומנגנוני הליבה שלהם עקביים.
עקביות ה-FlowAction
גם כללי קישוריות וגם זרימות אירועים צריכים להשתמש באותה קבוצת FlowActions.
כלומר:
- FlowAction מגדיר את הפעולות שניתן לקרוא להן על ידי Flow;
- שניהם חולקים מערכת פעולות אחת, במקום ליישם שתי מערכות נפרדות;
- זה מבטיח שימוש חוזר בלוגיקה והרחבה עקבית.
היררכיה קונספטואלית
מבחינה קונספטואלית, יחסי ההפשטה המרכזיים של FlowModel הם כדלקמן:
FlowModel
└── FlowDefinition
├── FlowEventDefinition
│ ├── אירועים גלובליים
│ └── אירועים מקומיים
└── FlowActionDefinition
├── פעולות גלובליות
└── פעולות מקומיות
תיאור ההיררכיה
-
FlowModel
מייצג ישות מודל עם לוגיקת זרימה הניתנת להגדרה ולביצוע.
-
FlowDefinition
מגדיר קבוצה מלאה של לוגיקת זרימה (כולל תנאי הפעלה ושלבי ביצוע).
-
FlowEventDefinition
מגדיר את מקור ההפעלה של הזרימה, כולל:
- אירועים גלובליים: כגון הפעלת יישום, השלמת טעינת נתונים;
- אירועים מקומיים: כגון שינויים בשדות, לחיצות כפתור.
-
FlowActionDefinition
מגדיר את הפעולות הניתנות לביצוע של הזרימה, כולל:
- פעולות גלובליות: כגון רענון העמוד, התראות גלובליות;
- פעולות מקומיות: כגון שינוי ערכי שדות, החלפת מצבי רכיבים.
סיכום
| מושג | מטרה | טווח השפעה |
|---|
| זרימה סטטית | לוגיקת זרימה המוגדרת בקוד | כל המופעים של XXModel |
| זרימה דינמית | לוגיקת זרימה המוגדרת בממשק | מופע FlowModel יחיד |
| FlowEvent | מגדיר את הטריגר (מתי להפעיל) | גלובלי או מקומי |
| FlowAction | מגדיר את לוגיקת הביצוע | גלובלי או מקומי |
| כלל קישוריות | עטיפה מפושטת של שלבי זרימת אירועים | רמת בלוק, רמת פעולה |