Collection generiche come proprietà

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...

Nella stessa categoria

Commenti
imperugo scrive:
Collection generiche come proprietà

Verissimo io mi di solito faccio ereditare le collection tipo UserCollection da una mia classe base generica tipo CollectionBase<T> che eredita sempre Collection<T>, ma con qualche aggiunta in più, tipo un where per l'entitybase che uso quasi sempre e di conseguenza le function di ricerca by ID, ecc con incluso il patter Special Case sempre generico per ritornare un qualcosa in caso la ricerca vada a vuoto.

ciauz
10/10/2006 ore 12.03

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - SMWorld.NET - Il blog di Stefano Mostarda

TagCloud
BLOG INFO
  • Post: 119
  • Commenti: 68
  • TrackBacks: 19
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA