Finalizer
Dans les langages de programmation orientés objectivement de du qui emploient la collection d'ordures , un finalizer est une méthode spéciale qui est exécutée quand un objet est des ordures rassemblées. Il est semblable dans la fonction à un destructeur . En termes moins techniques, un finalizer est un morceau de code qui s'assure que certaines mesures nécessaires sont prises quand une ressource acquise (telle qu'un dossier ou l'accès à un dispositif câblé) plus n'est employée. Ceci pourrait fermer le dossier ou signaler au du système d'exploitation que le dispositif câblé n'est nécessaire plus. Cependant, comme remarquable ci-dessous, les finalizers ne sont pas la manière preferred d'accomplir ceci et pour la plupart de servir de sécurité.
À la différence des destructeurs, les finalizers ne sont pas déterministes. Un destructeur est couru quand le programme libère explicitement un objet. Un finalizer, en revanche, est exécuté quand le système interne de collection d'ordures libère l'objet.
Les langages de programmation qui emploient des finalizers incluent le Java et le C# . Dans C#, et quelques autres qui soutiennent des finalizers, la syntaxe pour déclarer les imitateurs d'un finalizer qui des destructeurs dans le C++ .
En raison du manque de contrôle de programmeur de leur exécution, on lui en recommande habituellement d'éviter des finalizers pour mais les opérations les plus insignifiantes. En particulier, les opérations souvent effectuées dans des destructeurs ne sont pas habituellement appropriées pour des finalizers. Par exemple, les destructeurs sont employés souvent pour libérer les ressources chères telles que des poignées de dossier ou de réseau. Si placé dans un finalizer, les ressources peuvent demeurer en service pendant de longues périodes après que le programme soit fini avec elles. Au lieu de cela, la plupart des langues encouragent un " ; Le disposent le " de ; modèle de conception de par lequel l'objet ait une méthode pour nettoyer les ressources de l'objet, laissant le finalizer en tant que de sécurité dans le cas où la méthode de disposer n'obtient pas appelée. (La langue de C# soutient le modèle de disposer implicitement, par l'intermédiaire de l'interface et du mot-clé de IDisposable de de using.)
Voir également
Vie d'objet de Destructeur (de l'informatique)
.
| Random links: | Suprématie blanche | Edouard Venables-Vernon-Harcourt | Où est George ? | Otto Graham | Sendas | Finalizer |