Логика в получении части имущества. Хорошая практика? - PullRequest
7 голосов
/ 30 января 2009

При привязке данных xaml к некоторым данным я часто использую часть свойства get для выполнения некоторой логики. Например, для подведения итогов списка или проверки, если что-то положительно.

Например:

public List<SomeClass> ListOfSomeClass{get;set;}

public double SumOfSomeClass
{
  get
  {
    return ListOfSomeClass.Sum(s => s.Totals);
  }
}

public bool SumPositive
{
  get
  {
    if(SumOfSomeClass >= 0)
      return true;
    else
      return false;
  }
}

Таким образом, я могу связываться с SumPositive и SumOfSomeClass. Это считается хорошей практикой? Даже если это станет более сложным, чем это? Или лучше вызвать метод и вернуть результат? А как насчет звонков в другой класс или даже в базу данных?

Ответы [ 11 ]

0 голосов
/ 30 января 2009

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

Теперь, если эта логика была в ViewModel, то я думаю, что аспект получения немного более простителен / ожидаем.

...