Как разбить рекурсивную зависимость одного класса от другого?
У меня есть класс Пользователь.
От него наследуется класс ДругПользователя.
Далее я делаю в классе Пользователь метод ПолучитьДрузей.
В итоге получаю что класс Пользователь зависит от класса ДругПользователя (потому что в методе ПолучитьДрузей я создаю массив экземпляров класса ДругПользователя).
А класс ДругПользователя зависит от класса Пользователь, потому что там идет наследование.
Как мне эту рекурсивную зависимость разбить?
Все это происходит в ангуляре, где эти зависимости прописываются жестко (нет оператора use). Потому такая проблема и возникла.
Пусть так. Но наследовать его от Пользователя тогда не нужно - сделайте композицию. Например, если изменить имя класса на Дружба, то ваша проблема снимается - там будет храниться только id двух пользователей, но не сами объекты.
Если есть класс Машина, вы создадите класс-потомок МояМашина? Что конструктивно нового в "МоейМашине"? То, что вы можете ею управлять? так это не относится к машине. Нужно обозначить принадлежность машины как иную сущность - так же в случае и с дружбой, как и сказал Алексей
Убрать ДругПользователя, дав каждому классу уникальный id нужной размерности. Все друзья пользователя - список этих id.
Когда много одинаковых объектов проще вводить id для каждого объекта и по ним работать с этими объектами при помощи оберток над базой данных, которая по id будет отдавать класс или нужное поле класса.