Как я вижу, вы делите user
между Register
и Process
.Таким образом, проблема заключается в том, как обновить Process
при обновлении данных в user
.Вы можете создать слушателя на User
или на «Регистрация».ИМХО слушатель на 'Register' более элегантен.
RegisterListener:
public interface RegisterListener {
void userRegistered(User user);
}
Register:
public void addRegisterListener(RegisterListener listener) {
//add listener to some collection.
}
//Call this method on Submit button press
protected void fireRegistered() {
//iterate over collection of listeners and on each do:
listener.userRegistered(user);
}
Процесс:
Process implements RegisterListener {
public void userRegistered(User user) {
refreshView();
}
}
Ив основном:
Register register = new Register(user);
Process process = new Process();
register.addRegisterListener(process);
Таким образом, процесс должен быть проинформирован, когда пользователь зарегистрирован, и он должен получить все необходимые данные в параметре user
метода слушателя.