Info:

twitter

Ultimi commenti: Comment feed

Tags:

Sponsor:

Archivio 2018:

Gen

Archivio 2017:

Dic Nov Ott Mag Apr Mar Feb Gen

Archivio 2016:

Dic Nov Ott Ago Mag Mar Feb Gen

Archivio 2015:

Nov Ott Set Mar Gen

Archivio 2014:

Dic Nov Ott Set Lug Giu Mag Apr Gen

Archivio 2013:

Dic Nov Set Ago Lug Giu Mag Apr Feb Gen

Archivio 2012:

Dic Nov Ott Set Ago Giu Mag Apr Mar Feb Gen

Archivio 2011:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2010:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2009:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2008:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2007:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

Archivio 2006:

Dic Nov Ott Set Ago Lug Giu Mag Apr Mar Feb Gen

C# e IDisposable

Due dei costrutti piú interessanti ed eleganti del C# sono il lock e lo using, che funzionano in maniera pressocché simile. La feature piú comoda di tali istruzioni é la gestione automatica di quello che avviene implicitamente all'uscita del blocco di codice (e quindi anche in presenza di un eccezione). Nel caso del lock viene chiamato Monitor.Exit, nel caso di using viene chiamato IDisposable.Dispose. Giorni fa, proprio tale "automatismo" mi ha dato un'idea abbastanza simpatica e cioé quella di estendere il concetto di "rilasciare" contenuto nell'interfaccia IDisposable in senso lato. Si potrebbe ad esempio "rilasciare" un oggetto costoso in un pool. Ed é cosí che mi sono "inventato" (*) questo pattern. Siano:

MyClass un oggetto "costoso"
MyClassProxy un proxy all'oggetto "costoso" che implementa IDisposable
MyClassProxyPool un pool di MyClassProxy

Il pezzo di codice che "usa" MyClass e fa uso del pool diventa:

using(MyClassProxy proxy = MyClassProxyPool.GetAProxy())
{
MyClass realClass = proxy.RealObject;
realClass.DoSomething();
...

}

All'uscita del blocco (per un motivo o per un altro) verrá invocato proxy.Dispose(). A questo punto basta fare in modo che tale chiamata restituisca il proxy nel pool ed il gioco é fatto.

I  C#!!

-quack

(*) in realtá qualcuno direbbe che i pattern non si inventano ma si scoprono!

Potrebbero interessarti anche:
Commenti (1):
1. Paperino
martedì 25 aprile 2006 alle 5:40 AM - unknown unknown unknown
   

Per i VB fan: Using è disponibile come costrutto anche in VB (dalla versione 2005). Lock purtroppo no. Move to C#!

   
Lascia un commento:
Commento: (clicca su questo link per gli smiley supportati; regole di ingaggio per i commenti)
(opzionale, per il Gravatar)