Представьте, что у вас есть следующие вызовы методов:
parse() -> parseProductPage() -> parseUser() (indirectly?) -> process_item()
-> parseCategory() (indirectly?) -> process_item()
-> parseProduct() (indirectly?) -> process_item()
process_item () принадлежит к некоторому классу конвейера и отвечает за вставку каждого элемента в базу данных и возврат соответствующего идентификатора (динамически генерируется MongoDB, не присутствует перед вставкой). Все остальные методы принадлежат классу паука и дают рекурсивный результат.
Теперь я хочу получить доступ к каждому идентификатору на обратном пути, но проблема в том, что полученное значение доступно только для первоначального вызывающего (parent? Of parse ()).
Поскольку process_item () имеет доступ к вызывающему пауку, один из способов решения этой проблемы - записать каждый из этих идентификаторов в соответствующую переменную-член, но мне кажется, что это плохая архитектура проектирования, в которой многие вещи могут пойти не так. Есть ли альтернативы?
@ Edit Я думаю, я мог бы перенести логику создания отношений в конвейер, но так ли это на самом деле?