Tempo fa stavo realizzando un primo prototipo in .NET 2.0 e la cosa che mi piaceva molto era l'utilizzo di collection generiche che mi evitavano di dover creare una classe specifica per ogni tipo di collection. Questo significa che nelle mie classi avevo proprietà di tipo List<Classe>.
All'inizio la cosa non era male, meno codice, meno classi, ma la sintassi dopo un pò ne risentiva e soprattutto mi sono accorto che ne risentiva anche la leggibilità. Certo, List<Classe> e ClasseCollection non sono molto diverse a prima vista, ma se devo fare un metodo di ricerca specifico? E se devo fare dei sort complessi? Le collezioni generiche unite a comparer generici aiutano molto, ma alla fine spargerli nel codice peggiorava leggibilità e manutenibilità.
Da quel momento ho capito che le classi collection vanno create sempre facendole derivare da List<Classe> per risparmiare codice e creando metodi di ricerca, sort, etc specifici per ogni collection. Al loro interno, le collection eseguono i comandi utilizzando i metodi generici quindi il guadagno in termini di presazioni è poco. ma incapsulando il codice in questo modo si ha la potenza, la tipizzazione e le prestazioni delle collection generiche mantenendo anche la mentalità di sviluppo del modello pre-generics.
Stay tuned...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Chi si ricorda dei DataSet?, l'8 ottobre 2008 alle 22:04
- Caching nel DataLayer, il 29 gennaio 2007 alle 19:49
- Come mi piace implementare il pattern Identity Map, il 17 settembre 2006 alle 13:24
- I pattern che uso in genere, il 25 gennaio 2006 alle 00:38
- Factory Pattern e Generics per l'astrazione dal db, il 16 settembre 2005 alle 01:29