我的Web应用程序中有各种自定义数据类型,用于映射数据库中的一些数据。
类似的东西:
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类定义中或我的基页(所有其他页面继承的页面)
由于
答案 0 :(得分:2)
我认为您不应该将它放在Person
类中,因为它访问数据库和 HttpContext.Current.Cache
。此外,我认为你应该把它作为一个方法,而不是一个属性,暗示这个可能是一个“冗长”的操作。因此,在这两个选项中,我会将它放在基础Page
类中。
答案 1 :(得分:2)
我认为将它放在你的基页中会是更好的选择。
根据您的应用程序体系结构,在您的域类中放入与流程相关的代码可能会成为一个问题。有些人在DDD(域驱动设计)类型的应用程序中使用它。
更好的是,我通常会尝试在服务类中隐藏这些实现细节。您可以拥有一个PersonService
类,其中包含您的上述方法和所有与人相关的操作。这样,任何需要人员信息的页面都会简单地调用PersonService
;并且您可以将页面代码集中在GUI相关代码上。