View Single Post
Old 20-02-2009, 09:35   #17
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
@marco.r
Grazie delle spiegazioni, alcuni punti che hai messo in luce mi stanno aiutando a comprendere, anche se non ho ancora capito se un bravo programmatore ad oggetti, uno che ha appreso best practices e design patterns e li sa applicare quando, dove e come serve, ne abbia realmente bisogno (per esempio rispetto al fatto che con le closure hai la possibilità di migliorare la località)

Quote:
Originariamente inviato da marco.r Guarda i messaggi
Un uso molto importante e' quello della gestione delle risorse. Vista la presenza del garbage collection, in Java in generale non sappiamo quando viene deallocato un oggetto e se a questo oggetto e' associato una risorsa "esterna" (collegamento a db, file, etc.) dobbiamo liberare la risorsa associata a mano oppure rischiare di esaurirle. Se pero' posso passare un pezzo di codice, allora posso scrivere una funzione/metodo che prende ad esempio il nome del file e il codice da eseguire, apre il file, esegue il pezzo di codice, e si preoccupa della pulizia non appena il codice e' stato eseguito.
Sì perfetto, ma nel talk di J. Block ci si indirizza alla soluzione dello stesso problema in un altro modo: intoduci un nuovo costrutto da usarsi al posto del tradizionale try{}cacth(Exception e){}finally{} quando hai a che fare con le risorse, per sempio con un semplice try{} che implicitamente chiude correttamente la risorsa quando si esce dal suo scope.

Molto semplice, e conciso, direi.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso