Carregamento lento - qual é a melhor abordagem?

Eu já vi vários exemplos de carregamento lento - qual é a sua escolha?

Dada uma classe de modelo, por exemplo:

public class Person
{
    private IList<Child> _children;
    public IList<Child> Children
    {
        get {
            if (_children == null)
                LoadChildren();
            return _children;
        }
    }
}

A classe Person não deve saber nada sobre como as crianças são carregadas ... ou deveria? Certamente deve controlar quando as propriedades são preenchidas, ou não?

Você teria um repositório que une uma Pessoa com sua coleção de filhos ou usaria uma abordagem diferente, como usar umcarga preguiçosa classe - mesmo assim, não quero uma classe lazyload embaçada na minha arquitetura de modelo.

Como você lidaria com o desempenho se primeiro solicitasse uma Pessoa e depois seus Filhos (ou seja, carregamento não lento nesta instância) ou de alguma forma carregamento lento.

Tudo isso se resume a escolha pessoal?

questionAnswers(7)

yourAnswerToTheQuestion