Я читал, что доступ к репозиторию из совокупного корня считается плохой практикой. Если, чем рассмотреть следующий пример:DDD: доступ к репозиторию из совокупного корня считается плохой практикой?
class User {
private String username;
public void changeUsername(String newUsrname) {
// How will I persist username to database if I don't have access to repository from aggregate root?
...
}
}
Как будет сохраняться имя пользователя в базе данных, если у меня нет доступа к репозиторию от совокупного корня?
Я вижу это так:
class User {
private String username;
private UserRepository userRepository;
public User(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void changeUserName(String newUsername) {
this.username = newUserName;
userRepository.save(this);
}
}
Или я что-то пропустил в понятиях DDD?
Ваш пример показывает ActiveRecord, а не DDD. – dit
@dit, как бы вы это сделали в DDD? – Teimuraz
проверить этот пример DDD: https://github.com/citerus/dddsample-core – dit