Предполагается, что следующий код имеет круговую зависимость?
interface User {
void save();
}
interface UserRepo {
void save(String name);
User find(String name);
}
class UserImpl implements User {
private String name;
private UserRepo repo;
UserImpl(String name, UserRepo repo) {
this.name = name;
this.repo = repo;
}
public void save() {
repo.save(this.name);
}
}
class UserRepoImpl implements UserRepo {
public void save(String name) { ... }
public User find(String name) {
return new UserImpl(...);
}
}
* UserImpl
использует интерфейс UserRepo
, а UserRepoImpl
использует класс UserImpl
.
Так что цикл не прямой, но мне все еще интересно, нормально ли это.