私は、集約ルートからのリポジトリへのアクセスは悪い習慣とみなされていることを読んだ。 それがある場合は、次の例を考えてみより: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