Užbaigiklis (programavimas)

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką

Užbaigiklis (angl. finalizer) – specialus objekto metodas, kurį vykdanti sistema automatiškai iškviečia, kuomet objektas nebėra pasiekiamas programos kodo (nebėra jokios nuorodos į jį).[1]. Užbaigiklis atlieka įvairius šiuo atveju būtinus klasei specifinius veiksmus.

Skirtingai nuo destruktoriaus kuris programos kode kviečiamas tiesiogiai, užbaigiklio iškvietimo laikas paprastai nėra apibrėžtas. Vykdanti sistema gali jį iškviesti tiek tuojau pat objektui tapus nepasiekiamu, tiek vėliau ar (jei atminties pakanka) taip ir užbaigti programos vykdymą jo neiškvietus. Neapibrėžta ir laiko trukmė nuo užbaigiklio iššaukimo iki objekto sunaikinimo. Todėl užbaigiklis blogai tinka tvarkyti greitai išsekti galintiems resursams (tinklo jungtims ir pan). Destruktoriaus neturinčiose kalbose (Java) tokie resursai kiek galima greičiau grąžinami sistemai kitokiomis programavimo konstrukcijomis (try/catch ir pan). [2].

Paprastai laikoma klaida tiesiogiai kviesti užbaigiklį iš vykdomos programos kodo.



Šaltiniai[taisyti | redaguoti kodą]

  1. finalize() metodo dokumentacija Oracle Java specificijoje
  2. Joshua Bloch (2008). Creating and Destroying Java Objects