Является ли использование таких интерфейсов круговой зависимостью? - PullRequest
0 голосов
/ 22 октября 2019

Предполагается, что следующий код имеет круговую зависимость?

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.

Так что цикл не прямой, но мне все еще интересно, нормально ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...