Мне нужно найти и решить проблему, содержащую циклическую зависимость, где я либо храню непрозрачные указатели между участвующими объектами, либо использую отдельный класс на более высоком уровне для реализации отношений между объектами.
Итак, я решил простую проблему, в которой у меня есть два класса, банк и счет. Банк содержит список со счетами, а счет содержит указатель на свой банк. Достигнута циклическая зависимость.
Но есть еще одно условие, которое я должен выполнить: я должен убедиться, что классы и отношения между ними могут быть проверены независимо друг от друга.
Класс Bank использует функции, которые делают что-то со счетами, например, переводят средства между ними, снимают или добавляют средства. И учетная запись содержит аналогичные функции, которые редактируют свои переменные.
Протестировать класс учетной записи легко, как создать экземпляр класса и протестировать функции, но как я могу протестировать класс, который зависит от другого класса, независимого от зависимости? И как вы проверяете отношения между двумя классами?
У меня возникли проблемы с поиском информации о циклических зависимостях, кроме того, что вам следует избегать их, но в более крупных проектах их трудно избежать.