Memoire (code)
De Wiki1000
(Différences entre les versions)
(Nouvelle page : ===Introduction=== Le framework utilise un mécanisme basé sur les compteurs de références pour gérer le cycle de vie des objets métiers associés à un mécanisme de « ramasse...) |
|||
Ligne 9 : | Ligne 9 : | ||
<source lang='delphi'> | <source lang='delphi'> | ||
Procedure MonObjet.MaProcedure ; | Procedure MonObjet.MaProcedure ; | ||
− | + | var obj :Tcompte ; | |
− | + | begin | |
// L’objet est recherché et affecté à la variable obj | // L’objet est recherché et affecté à la variable obj | ||
// son compteur de référence est incrémeté | // son compteur de référence est incrémeté | ||
Ligne 17 : | Ligne 17 : | ||
. . . | . . . | ||
// La fin du bloc de code libère l’objet tenu par la variable | // La fin du bloc de code libère l’objet tenu par la variable | ||
− | + | end; | |
</source> | </source> | ||
Version actuelle en date du 16 juillet 2009 à 17:20
Introduction
Le framework utilise un mécanisme basé sur les compteurs de références pour gérer le cycle de vie des objets métiers associés à un mécanisme de « ramasse miette ».
Le langage de script supporte ce mécanisme de manière transparente.
Lorsqu’un objet est affecté à une variable d’un bloc de script, le compteur de référence de l’objet est incrémenté. Lorsque le bloc de script est terminé, les objets tenus par des variables sont automatiquement libérés.
Exemple
Procedure MonObjet.MaProcedure ; var obj :Tcompte ; begin // L’objet est recherché et affecté à la variable obj // son compteur de référence est incrémeté Obj := ClassManager.FindObject(….) ; // opération sur l’objet obj . . . // La fin du bloc de code libère l’objet tenu par la variable end;
Tip : Dans quelques cas particuliers le développeur peut souhaiter libérer prématurément un objet tenu par une variable, il suffit pour cela d’affecter la valeur nil à la variable. |
— Code métier — Développement DSM —