我尝试将我的特定域问题抽象到银行账户,假设以下情况:
- 我有某个客户的银行登录。
- 每个客户可以拥有多个属于同一登录名的银行账户。
- 每个银行账户可以有数千笔交易。
我将类结构设计如下(简化):
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...
}
然后我将加载一个带有简化帐户(不包含所有交易)的帐户模型,并且只有在用户请求查看特定帐户的交易时,我才会加载这个单个完整的帐户对象。
这样可以吗?有更好的方法吗?