Modèle d'objet CALCUL

 

Le modèle CALCUL est le modèle le moins sophistiqué d'Oxygène++ ; il est par conséquent plus rapide à construire. Son utilisation est vivement conseillée pour effectuer des opérations répétitives. On pourra par exemple regrouper au sein d'un objet de type CALCUL toute une série de méthodes susceptibles d'être fréquemment utilisées dans un contexte particulier.

Liste des déclarations standards

Nom                                      Désignation

AIDE                             Fichier d'aides
BASE                            Base de données
TABLE                          Contexte de table principale
TABLE_SECONDAIRE     Contextes de tables secondaires
LIBELLES                     Table de libellés
REP_OBJ                      Répertoire de recherche des objets
SOCIETE                      Code de la société
VARIABLES                   Liste des variables utilisées
PARAMETRES               Liste des paramètres formels
SRC_MODELE               Fichier source contenant des modèles

Liste des méthodes standards

Nom                                 Evénement correspondant

INIT                              Initialisation
DEBUT                         Début de l'objet
FAIRE                           Méthode principale
FIN                               Fin de l'objet
SORTIE                        Sortie de l'objet

Fonctionnement du modèle

- Le modèle d'objet CALCUL n'a aucune action automatique sur les tables. L'accès aux données de la base reste bien évidemment possible grâce aux instructions : Lire, Modifier, Ecrire, Annuler, etc...

- Un objet de type CALCUL n'a pas d'interface utilisateur (sauf s'il utilise les instructions du type BoiteDialogue) et ne peut pas imprimer sur un périphérique de l'ordinateur.

- Un objet de type CALCUL est « résident », cela signifie que toute instance d'un objet de type CALCUL reste par défaut en mémoire. Ses méthodes restent donc disponibles pour tous les autres objets jusqu'à ce que l'arrêt de l'objet CALCUL soit demandée par l'un des objets utilisateurs.

 

Erreurs à ne pas commettre

- L'objet CALCUL ne doit pas être utilisé comme une simple fonction : L'erreur classique du programmeur est de construire un objet CALCUL en lui passant des paramètres (par référence) et de provoquer la sortie systématique (une fois le calcul effectué) pour rendre le résultat à l'appelant. Avec cette technique de programmation, l'objet CALCUL perd tout son intérêt puisqu'il est dans ce cas construit à chaque fois. Il faut bien comprendre que ce type de programmation peut rendre des centaines de fois plus lent un calcul simple. (voir les instructions et fonctions : CreerObjet, AppliquerMethode)

- L'objet CALCUL étant résident, il le restera tant qu'il ne recevra pas l'ordre de sortir par un envoi de message. En pratique, cela signifie que l'objet qui a créé une instance de l'objet CALCUL est également responsable de sa destruction (voir les instructions et fonctions : Sortir, EnvoyerMessage).

- L'erreur classique est de construire autant de fois l'objet CALCUL que d'appels à ses méthodes. Il en résulte une accumulation d'instances d'objet en mémoire (une pour chaque appel) qui finit par saturer le système. Le programmeur doit être conscient que les méthodes d'un objet CALCUL restent à sa disposition pour effectuer des opérations répétitives. Il faut donc construire l'objet CALCUL une seule fois et faire appel à ses méthodes autant de fois que nécessaire (voir les instructions et fonctions : CreerObjet, CreerUnique, InstanceCreee, AppliquerMethode)

- Il faut regrouper au sein d'un objet de type CALCUL les méthodes susceptibles d'être utiles dans un contexte précis. Il est inutile de surcharger l'objet par des méthodes exceptionnelles ou des traitements lourds.

 

Programmation avancée

- Pour exploiter pleinement les possibilités du modèle CALCUL, nous vous conseillons de lire les chapitres suivants :

 « Instances multiples & encapsulation des données »

 « Notion de traitements coopératifs »

 

Schéma logique du modèle :

 

       Construction de l'objet

       INIT : Ouverture des tables

 

       AVANT_DEBUT  

       DEBUT                                        

       APRES_DEBUT

 

       AVANT_FAIRE

       FAIRE

       APRES_FAIRE

 

Interruption du schéma logique

La suite doit être déclenchée par programmation

 

        AVANT_FIN

        FIN          

        APRES_FIN

 

       AVANT_SORTIE          

       SORTIE     
       
APRES_SORTIE

 

Destruction de l'objet

 

Exemple d'objet dérivant d'un modèle CALCUL