Le Wed, 14 Jul 2004 15:29:21 +0200, dark poulpo a écrit :
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
j'ouvre une connexion try { ca marche } catch () ca plant } finalize { je ferme tout }
Maurice PHILIPPE
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne l'utilise pas. Une utilisation classique est la libération de ressources dont on n'a plus l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont -open(String filename) -close() -read() -write(String data)
Son construteur DataFile(String filename)
On suppose que le premier constructeur effectue l'open() On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du close(): 1) il faut que l'instance ne soit plus référencée 2) il faut que le garbage collector "libère" l'objet Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur (dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" wrote in message news:cd3bg8$vbp$
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne
l'utilise pas.
Une utilisation classique est la libération de ressources dont on n'a plus
l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont
-open(String filename)
-close()
-read()
-write(String data)
Son construteur
DataFile(String filename)
On suppose que le premier constructeur effectue l'open()
On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe
fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur
de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du
close():
1) il faut que l'instance ne soit plus référencée
2) il faut que le garbage collector "libère" l'objet
Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas
avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur
(dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" <syn-ack@wanadoo.fr> wrote in message
news:cd3bg8$vbp$1@news-reader5.wanadoo.fr...
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me
donner un exemple concret svp
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne l'utilise pas. Une utilisation classique est la libération de ressources dont on n'a plus l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont -open(String filename) -close() -read() -write(String data)
Son construteur DataFile(String filename)
On suppose que le premier constructeur effectue l'open() On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du close(): 1) il faut que l'instance ne soit plus référencée 2) il faut que le garbage collector "libère" l'objet Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur (dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" wrote in message news:cd3bg8$vbp$
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
Cédric Chabanois
ouai enfin plutôt try {
} catch (Exception e) { // bouh ya euh un problème } finally { // exception ou pas il faut que je ferme le fichier ou je ne sais pas quoi }
Unknown wrote:
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
j'ouvre une connexion try { ca marche } catch () ca plant } finalize { je ferme tout }
ouai enfin plutôt
try {
} catch (Exception e) {
// bouh ya euh un problème
} finally {
// exception ou pas il faut que je ferme le fichier ou je ne sais pas quoi
}
Unknown wrote:
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me
donner un exemple concret svp
merci d'avance
j'ouvre une connexion
try {
ca marche
} catch ()
ca plant
} finalize {
je ferme tout
}
} catch (Exception e) { // bouh ya euh un problème } finally { // exception ou pas il faut que je ferme le fichier ou je ne sais pas quoi }
Unknown wrote:
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
j'ouvre une connexion try { ca marche } catch () ca plant } finalize { je ferme tout }
Cédric Chabanois
Le finalyze il ne faut pas l'utiliser !
Rien ne dit qu'il sera appelé en pratique : ce n'est pas l'équivalent du destructeur c++.
A oublier donc
Cédric
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne l'utilise pas. Une utilisation classique est la libération de ressources dont on n'a plus l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont -open(String filename) -close() -read() -write(String data)
Son construteur DataFile(String filename)
On suppose que le premier constructeur effectue l'open() On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du close(): 1) il faut que l'instance ne soit plus référencée 2) il faut que le garbage collector "libère" l'objet Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur (dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" wrote in message news:cd3bg8$vbp$
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************
Le finalyze il ne faut pas l'utiliser !
Rien ne dit qu'il sera appelé en pratique : ce n'est pas l'équivalent du
destructeur c++.
A oublier donc
Cédric
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne
l'utilise pas.
Une utilisation classique est la libération de ressources dont on n'a plus
l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont
-open(String filename)
-close()
-read()
-write(String data)
Son construteur
DataFile(String filename)
On suppose que le premier constructeur effectue l'open()
On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe
fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur
de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du
close():
1) il faut que l'instance ne soit plus référencée
2) il faut que le garbage collector "libère" l'objet
Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas
avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur
(dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" <syn-ack@wanadoo.fr> wrote in message
news:cd3bg8$vbp$1@news-reader5.wanadoo.fr...
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me
donner un exemple concret svp
merci d'avance
--
*************************
le bureau 3D pour windows
http://www.syndesk3d.fr.st
*************************
Rien ne dit qu'il sera appelé en pratique : ce n'est pas l'équivalent du destructeur c++.
A oublier donc
Cédric
Si tu parles du finalizeur à l'opposé du constructeur, j'avoue que je ne l'utilise pas. Une utilisation classique est la libération de ressources dont on n'a plus l'utilité, par exemple (pas joli, mais juste à titre didactique) :
Un objet DataFile gère l'accès à un fichier, ses méthodes sont -open(String filename) -close() -read() -write(String data)
Son construteur DataFile(String filename)
On suppose que le premier constructeur effectue l'open() On imagine bien qu'il n'y a pas de raison que l'utilisateur de cette classe fasse un close() alors qu'il n'a pas fait l'open(). C'est donc au finalizeur de libérer le fichier.
Cela marche mais je n'aime pas ça car on ne maitrise pas le moment du close(): 1) il faut que l'instance ne soit plus référencée 2) il faut que le garbage collector "libère" l'objet Donc je préfére gérer la ressource à la mano, ce qui permet aussi de ne pas avoir à gérer d'exception/flag à la construction pour gérer les cas d'erreur (dans notre exemple les pb d'accès au fichier lors de l'open())
"dark poulpo" wrote in message news:cd3bg8$vbp$
bonjour, j'ai du mal a saisir l'utilité du finalizeur, pourriez vous me donner un exemple concret svp merci d'avance
-- ************************* le bureau 3D pour windows http://www.syndesk3d.fr.st *************************