геттер, сеттер c # - PullRequest
       10

геттер, сеттер c #

2 голосов
/ 26 февраля 2010

В моем веб-приложении есть различные пользовательские типы данных для сопоставления некоторых данных из базы данных.

что-то вроде:

Person
Id
Name
Surname

и мне нужен список людей на большинстве страниц моего приложения

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

что-то вроде (псевдокод)

public List<Person> Persons 
{
   get { return if cache != null  return List of Persons from cache  else get from the database;}
}

Куда мне положить этот добытчик? в моем определении класса Person или на моей базовой странице (странице, от которой наследуются все остальные страницы)

Спасибо

Ответы [ 2 ]

2 голосов
/ 26 февраля 2010

Я думаю, что размещение на вашей базовой странице было бы лучшим вариантом.

В зависимости от архитектуры вашего приложения, размещение кода, связанного с процессом, в классах вашего домена может быть проблемой. Некоторые используют его в приложениях типа DDD (доменное проектирование).

Более того, я обычно стараюсь скрыть эти детали реализации в классе обслуживания. У вас может быть класс PersonService, который будет содержать указанный выше метод и все связанные с человеком операции. Таким образом, любая страница, требующая информации о человеке, просто позвонит по номеру PersonService; и вы можете сконцентрировать код своей страницы на коде, связанном с GUI.

2 голосов
/ 26 февраля 2010

Не думаю, что вы должны поместить его в свой класс Person, поскольку он обращается к базе данных и HttpContext.Current.Cache. Кроме того, я думаю, вы должны сделать это методом, а не свойством, чтобы подразумевать, что эта может быть "длительной" операцией. Итак, из двух вариантов я бы поставил базовый класс Page.

...