Является ли создание экземпляра коллекции в доменной модели хорошей практикой? - PullRequest
3 голосов
/ 05 июля 2011

Я вижу, что в этих типах моделей есть много примеров в сети.

public class User
{
    public long Id { get; set; }
    public string Name{ get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

Считается ли хорошей практикой создавать экземпляр коллекции в конструкторе, как показано в коде ниже?Если так, каковы причины?Как насчет объектов в модели?

public class User
{
    public User()
    {
        Products = new List<Product>();
    }
    public long Id { get; set; }
    public string Name{ get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

1 Ответ

1 голос
/ 06 июля 2011

Ну, я бы сказал, что это зависит от ситуации, но продукты в этом случае будут заполняться из базы данных через репозиторий, так что, скорее всего, ORM какого-то рода, поэтому в конструкторе не потребуется инициализация для нового List.,Значение null для Продуктов указывает на то, что список еще не загружен.С другой стороны, допустим, что ваш объект должен инициализировать эту коллекцию.Для простых объектов DDD говорит, что конструкторы вполне подходят для этих вещей, но в случае сложных объектов перенесите конструкцию на Фабрику.

...