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