Я пытаюсь абстрагировать свою конкретную проблему домена от банковского счета, предположим следующую ситуацию:
- У меня есть банковский логин определенного клиента.
- Каждый Клиент может иметь несколько банковских счетов, принадлежащих одному логину.
- Каждый банковский счет может иметь тысячи транзакций.
Я разработал структуру класса следующим образом (упрощенно):
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...
}
Затем я загрузил бы модель учетной записи с упрощенной учетной записью (которая не содержит всю транзакцию), и только если пользователь запрашивает транзакцию определенной учетной записи, я загружаю этот единственный объект учетной записи целиком.
Так будет нормально? Есть ли лучший подход?