Является ли создание объектов в геттерах плохой практикой? - PullRequest
25 голосов
/ 20 января 2010

Давайте создадим объект в геттере следующим образом:

public class Class1
{
       public string Id { get; set; }
       public string Oz { get; set; }
       public string Poznamka { get; set; }

       public Object object
       {
             get
             {
                  // maybe some more code
                  return new Object { Id = Id, poznamla = Poznamka, Oz = OZ };
             }
        }
 }

Или мне лучше создать метод, который будет создавать и возвращать объект?

Ответы [ 14 ]

0 голосов
/ 20 января 2010

Как вы понимаете, это плохо, но не так, как это принято в ленивой загрузке, о которой можно прочитать здесь

http://www.aspcode.net/Lazy-loading-of-structures-in-C-howto-part-8.aspx

0 голосов
/ 20 января 2010

Это плохая практика.В вашем примере вы должны иметь возможность ожидать одно и то же значение Object при каждом обращении к свойству object.

0 голосов
/ 20 января 2010

Зависит от использования геттера.Это отличное место, чтобы включить этот вид кода для отложенной загрузки.

0 голосов
/ 20 января 2010

Это может быть максимально приемлемо для struct с. Для ссылочных типов я бы создал новый объект в геттере, только когда это было сделано один раз, с использованием некоторого шаблона ленивой загрузки.

...