Мне трудно разобраться с шаблоном хранилища.
Одна вещь, которую я не могу понять, как подсказывает большинство уроков, это то, что хранилище должно действовать как база данных в памяти,т.е. они должны иметь методы add()
, remove()
, find()
и т. д.Но если я не использую какой-либо персистентный фреймворк, такой как Hibernate
, где я должен поместить логику для сохранения этих объектов в базу данных?Должен ли быть отдельный слой доступа к данным ?
Что происходит, когда объект содержит ссылку на другой объект?
Например, Customer
может иметь много Address
(es) и существует идентифицирующая связь между Customer
и Address
public class Customer {
private String firstName;
private String lastName;
private List<Address> addresses; // one or more addresses
// ...
}
public class Address {
protected String street;
protected String city;
// ...
}
Должны ли быть два отдельных хранилища для Customer
и Address
?
Как должна выглядеть такая структура репозитория, если в нее включена справочная таблица (например, A Book
, имеющий Owner
, в неидентифицирующем отношении )?