Да, вы не должны давать дочерним объектам ссылки на своих родителей. Я полагаю, что ситуация, которую вы объяснили выше, является иерархией отображения. В этом случае вы могли бы сделать это намного лучше, используя систему событий. Вы можете создавать пользовательские события, которые отправляются, когда что-то происходит, и родитель добавляет слушателей к событиям, чтобы позаботиться о них.
Возможный сценарий события для вашей структуры будет, например, следующим:
- Ответ (кнопка) нажимается, и прослушивающий список ответов замечает, что.
- AnswerList отправляет событие «отвечено», которое получает вопрос.
- Вопрос отправляет событие с ответом, чтобы уведомить Список вопросов, чтобы пометить этот вопрос как ответ
- Когда список вопросов получил ответы на события по всем вопросам, он отправляет «завершенное» событие, чтобы сообщить Викторине, что оно завершено