Ho visto numerosi esempi di caricamento lazy - qual è la vostra scelta?Caricamento lento: qual è l'approccio migliore?
Data una classe del modello, ad esempio:
public class Person
{
private IList<Child> _children;
public IList<Child> Children
{
get {
if (_children == null)
LoadChildren();
return _children;
}
}
}
La classe Person non deve sapere nulla di come è bambini vengono caricati .... o dovrebbe? Sicuramente dovrebbe controllare quando le proprietà sono popolate, o no?
Avresti un repository che accoppia una persona con la sua collezione di bambini o utilizzeresti un approccio diverso, ad esempio usando una classe lazyload - anche allora, non voglio che una classe lazyload si offuschi nella mia architettura del modello.
Come gestireste le prestazioni se prima richiedete una persona e poi i suoi figli (cioè non il caricamento pigro in questa istanza) o il caricamento in qualche modo pigro.
Tutto questo si riduce a una scelta personale?
Problema: questo è abbastanza spesso un ottimo esempio di ottimizzazione locale a spese dell'ottimizzazione globale. – dkretz