Flux d'événements

Dans FlowEngine, tous les composants de l'interface sont pilotés par les événements. Le comportement, l'interaction et les changements de données des composants sont déclenchés par des événements et exécutés via un flux.

Flux statique vs. Flux dynamique

Dans FlowEngine, les flux peuvent être divisés en deux types :

1. Flux statique

  • Défini par les développeurs dans le code ;
  • Agit sur toutes les instances d'une classe de modèle ;
  • Couramment utilisé pour gérer la logique générale d'une classe de modèle.

2. Flux dynamique

  • Configuré par les utilisateurs via l'interface ;
  • Ne prend effet que sur une instance spécifique ;
  • Couramment utilisé pour un comportement personnalisé dans des scénarios spécifiques.

En bref : un flux statique est un modèle logique défini sur une classe, tandis qu'un flux dynamique est une logique personnalisée définie sur une instance.

Règles de liaison vs. Flux dynamique

Dans le système de configuration de FlowEngine, il existe deux manières d'implémenter la logique événementielle :

1. Règles de liaison

  • Sont des encapsulations d'étapes de flux d'événements intégrées ;
  • Plus simples à configurer et plus sémantiques ;
  • Essentiellement, elles restent une forme simplifiée de flux d'événements.

2. Flux dynamique

  • Capacités complètes de configuration de flux ;
  • Personnalisable :
    • Déclencheur (on) : définit quand déclencher ;
    • Étapes d'exécution (steps) : définit la logique à exécuter ;
  • Convient aux logiques métier plus complexes et flexibles.

Par conséquent, les Règles de liaison ≈ Flux d'événements simplifié, et leurs mécanismes fondamentaux sont cohérents.

Cohérence des FlowAction

Que ce soient les Règles de liaison ou les Flux d'événements, ils doivent utiliser le même ensemble de FlowAction. C'est-à-dire :

  • Une FlowAction définit les actions qui peuvent être appelées par un flux ;
  • Les deux partagent un seul système d'actions, plutôt que d'en implémenter deux distincts ;
  • Cela garantit la réutilisation de la logique et une extension cohérente.

Hiérarchie conceptuelle

Conceptuellement, la relation abstraite fondamentale de FlowModel est la suivante :

FlowModel
 └── FlowDefinition
      ├── FlowEventDefinition
      │     ├── Global Events
      │     └── Local Events
      └── FlowActionDefinition
            ├── Global Actions
            └── Local Actions

Description de la hiérarchie

  • FlowModel Représente une entité de modèle avec une logique de flux configurable et exécutable.

  • FlowDefinition Définit un ensemble complet de logique de flux (incluant les conditions de déclenchement et les étapes d'exécution).

  • FlowEventDefinition Définit la source de déclenchement du flux, incluant :

    • Événements globaux : comme le démarrage de l'application, la fin du chargement des données ;
    • Événements locaux : comme les changements de champ, les clics sur les boutons.
  • FlowActionDefinition Définit les actions exécutables du flux, incluant :

    • Actions globales : comme le rafraîchissement de la page, les notifications globales ;
    • Actions locales : comme la modification des valeurs de champ, le changement d'état des composants.

Résumé

ConceptRôlePortée
Flux statiqueLogique de flux définie dans le codeToutes les instances de XXModel
Flux dynamiqueLogique de flux définie sur l'interfaceUne seule instance de FlowModel
FlowEventDéfinit le déclencheur (quand déclencher)Globale ou locale
FlowActionDéfinit la logique d'exécutionGlobale ou locale
Règle de liaisonEncapsulation simplifiée des étapes de flux d'événementsNiveau bloc, niveau action