У меня есть два класса User
и Task
:
public class User {
private Task task;
private List<Item> items;
// constructor
public User() {
this.task = new Task(this);
this.items = new ArrayList<>();
}
// getters
}
Класс задачи имеет ссылку на пользователя:
public class Task{
// should be always the same as user.items !!!
private List<Item> items;
private User user;
// constructor
public Task(User user){
this.user = user;
// Pass by reference ?
this.items = user.getItems();
}
public void addItem(Item item){
this.items.add(item);
}
}
Теперь мои вопросы:
Если я добавлю item
с task.addItem(item)
, будет ли этот пункт также добавлен к user.items
? Является ли жизненный цикл и экземпляр user.items
точными и всегда такими же, как task.items
.
На самом деле у меня есть много методов в User.class
и я хочу извлечь эти методы в Task.class
. При этом у меня есть отношение 1: 1 между пользователем и задачей. Есть ли другой шаблон проектирования для этого (состав / агрегация).