Distruttore (informatica)

evento particolare che viene invocato automaticamente quando un oggetto viene distrutto
Versione del 17 set 2007 alle 18:14 di CruccoBot (discussione | contributi) (Sistemazione automatica della disambigua: Java)

Nella programmazione orientata agli oggetti, un distruttore è un particolare metodo che viene invocato automaticamente quando l'oggetto viene distrutto. Il suo compito principale è quello di liberare le risorse utilizzate dall'oggetto per la memorizzazione delle sue strutture dati, definite dalla sua classe e create dal corrispondente costruttore ed eventualmente le altre risorse allocate dinamicamente durante l'esecuzione dei metodi dell'oggetto stesso. Nella creazione del codice di un distruttore occorre agire con particolare attenzione, in quanto per evitare fenomeni di memory leak si deve essere certi che tutte le strutture dati liberino correttamente la memoria da loro utilizzata compresa quella eventualmente utilizzata da altre strutture annidate al loro interno. Il linguaggio di programmazione ad oggetti più famoso ad utilizzare i distruttori è il C++.

Nei linguaggi che mettono a disposizione un garbage collector, il distruttore è spesso inutile in quanto le risorse occupate da un oggetto vengono automaticamente liberate nel momento in cui non c'è più nessun riferimento all'oggetto stesso. In questi linguaggi è generalmente possibile utilizzare o definire ugualmente appositi metodi per ottenere il medesimo effetto, nei casi in cui si desideri disattivare il garbage collector, in quanto per alcuni task critici potrebbe risultare troppo inefficiente. Esempio di linguaggi di programmazione fra i più conosciuti ad utilizzare il meccanismo della garbage collection sono Java e la versione 2 di Objective-C.