【发布时间】:2012-07-27 20:53:49
【问题描述】:
我尝试将我的特定域问题抽象为银行账户,假设以下情况:
- 我有某个客户的银行登录信息。
- 每个客户可以拥有多个属于同一登录名的银行账户。
- 每个银行账户可以有数千笔交易。
我将类结构设计如下(简化):
public class Login
{
private List<Account> _bankingAccounts;
....more fields, ctor, getters, setters...
}
public class Account
{
private List<Transaction> _transactions;
....more fields, ctor, getters, setters...
}
public class Transaction
{
String _comment;
....more fields, ctor, getters, setters...
}
好吧,但是如果我有 20 个帐户,每个帐户有 10000 个事务,并且我从数据库加载整个模型,则会有大量内存,即使我不知道客户是否需要所有这些事务。
我想像这样构建一个更简化的模型:
public class Login
{
private List<SimpleAccount> _bankingAccounts;
....more fields, ctor, getters, setters...
}
public class SimpleAccount
{
....more fields, ctor, getters, setters...
}
public class Account
{
private List<Transaction> _transactions;
....more fields, ctor, getters, setters...
}
public class Transaction
{
String _comment;
....more fields, ctor, getters, setters...
}
然后我将加载一个带有简化帐户的帐户模型(其中不包含所有交易),并且只有在用户请求查看特定帐户的交易时,我才会加载这个单个完整的帐户对象。
这样可以吗?有更好的方法吗?
【问题讨论】:
-
对于一长串交易,您可以进行服务器端分页
标签: c# java architecture domain-driven-design domain-model