LambiqueGlobal

Option 1

Documentation – Composant LambiqueGlobal
LambiqueGlobal est un composant externe unique intégré au projet client. Il agit comme un singleton global pour gérer et partager des informations transversales entre tous les modules du projet.

🎯 Objectifs

  • Centraliser certaines entités applicatives communes (utilisateur, entité, etc.)
  • Éviter la duplication de listes volumineuses dans chaque composant
  • Assurer la communication entre composants à travers des objets métiers sérialisés (ex: JSON)
  • Rediriger dynamiquement les traitements vers le module source responsable de chaque type d’objet métier

🧠 Fonctionnalités principales

  • Utilisateur courant : accessible via setUser() / getUser()
  • Stockage centralisé pour :
    • UtilisateurListe
    • UniteListe, UniteTypeListe
    • CouleurListe
    • DeviseListe
    • MonEntite
    • TauxHoraireListe
  • Router métier : acheminement d’un objet JSON vers le module d’origine
  • Gestion centralisée des interactions avec la vue générique

🔄 Cycle typique d’un objet métier partagé

  1. Un module appelle LambiqueGlobal pour créer un objet métier
  2. LambiqueGlobal route le JSON vers le module d’origine
  3. Le module crée l’objet, son présentateur, et appelle la vue générique
  4. Après modification, l’objet est retransformé en JSON et retourné via LambiqueGlobal

📌 Considérations techniques

  • Implémentation sous forme de singleton
  • Utilise des structures dynamiques (ex: variant, json, etc.) pour la sérialisation
  • Réduction de la charge mémoire dans les composants (données centralisées)
  • Facilite l’évolution et la maintenance des modules métiers

Option 2

Documentation – LambiqueGlobal
LambiqueGlobal est un composant global (singleton) intégré à l’échelle du projet, responsable de la centralisation des données métier partagées et de la coordination inter-modules.

📌 Rôles principaux

  • Maintien de l’utilisateur courant et informations associées
  • Enregistrement et récupération d’objets métier entre composants
  • Coordination des vues génériques avec données transmises au format JSON
  • Interface centralisée pour fournir certains services métier via des Providers

🔁 Communication inter-modules

  • Les modules peuvent s’enregistrer auprès de LambiqueGlobal pour proposer leurs objets métier
  • Les objets peuvent être transmis sous forme de JSON vers une vue générique
  • Après modification, ils retournent au module d’origine via un mécanisme de délégation

🧩 Notion de Provider & Interface

Pour éviter d’intégrer des composants métier dans LambiqueGlobal, une architecture par interface est utilisée.

🎯 Objectif

  • Éviter les dépendances croisées entre modules
  • Conserver LambiqueGlobal léger et générique

📐 Principe

  • LambiqueGlobal définit une interface IUtilisateurProvider
  • Un autre composant métier implémente cette interface via une classe comme CLUtilisateurProvider
  • LambiqueGlobal utilise un objet dynamique : GUtilisateurProvider

⚙️ Exemple d’utilisation

SI GLambiqueGlobal.GUtilisateurProvider = Null ALORS
   GLambiqueGlobal.GUtilisateurProvider = new CLUtilisateurProvider()
FIN

ListeU = GLambiqueGlobal.GUtilisateurProvider.ChargerListeUtilisateurs()

Remarque : En raison de l’utilisation d’un objet dynamique, l’auto-complétion ne sera pas disponible. La documentation et les commentaires deviennent donc importants.

📁 Localisation

  • L’interface IUtilisateurProvider est déclarée dans LambiqueGlobal
  • Les implémentations concrètes restent dans les modules métiers (non référencés par LambiqueGlobal)