🌟 Objectif
IListe est une interface générique utilisée pour standardiser les opérations sur des listes métier.
Elle est conçue pour être utilisée en combinaison avec la classe MGListe
dans le composant LambiqueGlobal.
📌 Membres obligatoires
p_tabModele
: Propriété contenant le tableau d’objets métier.m_pclFiltre
: Membre public représentant les critères de filtrage SQL. Il doit être compatible avec le modèle associé.Charger()
: Procédure qui charge les données dansp_tabModele
, en tenant compte dem_pclFiltre
.GetModele(IdentifiantUnique)
: Fonction qui retourne un modèle à partir de son identifiant unique.SupprimerTout()
: Vide le contenu de la liste.
🧩 Intégration
Toutes les classes métier de type MxxxListe
doivent implémenter IListe
pour pouvoir être utilisées par MGListe
dans GGlobal
.
🧠 Gestion du filtrage
Le membre m_pclFiltre
, qui doit être public, permet à MGListe
de cloner, personnaliser, et injecter dynamiquement un filtre sur une liste.
Le filtre est appliqué au moment de l’appel de Charger()
, via la méthode GetListeAvecFiltre(m_pclFiltre)
de MGListe
.
🏗️ Emplacement
L’interface IListe
est déclarée dans le composant LambiqueGlobal.
✅ Pourquoi ce choix ?
- Centralisation : Le contrat est défini une seule fois et réutilisé dans tous les modules métier.
- Dépendance propre : Les modules métier dépendent uniquement de
IListe
et non de LambiqueGlobal. - Filtrage uniforme : Le mécanisme est unifié et compatible avec les chargements SQL filtrés dynamiquement.
💡 Bonnes pratiques
- Éviter d’ajouter des méthodes spécifiques à un métier pour préserver la généralité de l’interface.
- Déclarer
m_pclFiltre
comme un membre public, même si le filtre est vide par défaut. - Utiliser des objets dynamiques pour permettre une compatibilité maximale entre les types métiers utilisés.