Здравствуйте, Rustavelli, Вы писали:
R>Но в этом случае получается сильная связанность классов. Одну из связей (или обе) можно попробовать заменить на интерфейс.
Я бы не назвал такой подход правильным. Интерфейсы в первую очередь служат для описания ролей ("ведёт себя как", эдакий типизированный duck-typing). Классы — для описания сущностей ("является чем-то"). Когда мы прячем информацию о сильной связанности в интерфейс, мы намекаем, что сильная связность нужна только для некоторых сценариев использования. Здесь налицо нарушение SRP и в таких случаях лучше вообще отказаться от двусторонней зависимости.