Повідомлення про переклад ШІ
Ця документація була автоматично перекладена штучним інтелектом.
Потік подій
У FlowEngine всі компоненти інтерфейсу є керованими подіями (event-driven).
Поведінка, взаємодія та зміни даних компонентів запускаються подіями та виконуються через потік.
Статичний потік проти динамічного потоку
У FlowEngine потоки можна розділити на два типи:
1. Статичний потік (Static Flow)
- Визначається розробниками в коді;
- Застосовується до всіх екземплярів класу моделі;
- Зазвичай використовується для обробки загальної логіки класу моделі;
2. Динамічний потік (Dynamic Flow)
- Налаштовується користувачами в інтерфейсі;
- Застосовується лише до конкретного екземпляра;
- Зазвичай використовується для персоналізованої поведінки в конкретних сценаріях;
Коротко: статичний потік — це шаблон логіки, визначений на рівні класу, тоді як динамічний потік — це персоналізована логіка, визначена на рівні екземпляра.
Правила зв'язування проти динамічного потоку
У системі конфігурації FlowEngine існує два способи реалізації логіки подій:
1. Правила зв'язування (Linkage Rules)
- Є інтегрованими інкапсуляціями кроків потоку подій;
- Простіші в налаштуванні та більш семантичні;
- По суті, вони все ще є спрощеною формою потоку подій (Flow).
2. Динамічний потік (Dynamic Flow)
- Повні можливості конфігурації потоку;
- Можна налаштувати:
- Тригер (on): Визначає, коли запускати;
- Кроки виконання (steps): Визначають логіку, що виконуватиметься;
- Підходить для складнішої та гнучкішої бізнес-логіки.
Отже, Правила зв'язування ≈ Спрощений потік подій, і їхні основні механізми є узгодженими.
Узгодженість FlowAction
Як Правила зв'язування, так і Потоки подій повинні використовувати однаковий набір FlowAction.
Тобто:
- FlowAction визначає дії, які можуть бути викликані потоком;
- Обидва використовують єдину систему дій, замість реалізації двох окремих;
- Це забезпечує повторне використання логіки та узгоджене розширення.
Концептуальна ієрархія
Концептуально, основні абстрактні зв'язки FlowModel виглядають так:
FlowModel
└── FlowDefinition
├── FlowEventDefinition
│ ├── Global Events
│ └── Local Events
└── FlowActionDefinition
├── Global Actions
└── Local Actions
Опис ієрархії
-
FlowModel
Представляє сутність моделі з конфігурованою та виконуваною логікою потоку.
-
FlowDefinition
Визначає повний набір логіки потоку (включаючи умови спрацьовування та кроки виконання).
-
FlowEventDefinition
Визначає джерело спрацьовування потоку, включаючи:
- Глобальні події: такі як запуск програми, завершення завантаження даних;
- Локальні події: такі як зміна поля, натискання кнопки.
-
FlowActionDefinition
Визначає дії, які може виконувати потік, включаючи:
- Глобальні дії: такі як оновлення сторінки, глобальні сповіщення;
- Локальні дії: такі як зміна значень полів, перемикання стану компонента.
Підсумок
| Концепція | Призначення | Область дії |
|---|
| Статичний потік (Static Flow) | Логіка потоку, визначена в коді | Усі екземпляри XXModel |
| Динамічний потік (Dynamic Flow) | Логіка потоку, визначена в інтерфейсі | Один екземпляр FlowModel |
| FlowEvent | Визначає тригер (коли запускати) | Глобально або локально |
| FlowAction | Визначає логіку виконання | Глобально або локально |
| Правило зв'язування (Linkage Rule) | Спрощена інкапсуляція кроків потоку подій | Рівень блоку, дії |