Нав'язлива структура даних - це структура, яка потребує допомоги елементів, які вона збирається зберігати, щоб зберегти їх.
Дозвольте це переформулювати. Коли ви щось вкладаєте в цю структуру даних, це "щось" усвідомлює той факт, що воно є в тій структурі даних, певним чином. Додавання елемента до структури даних змінює елемент.
Наприклад, ви можете побудувати не нав'язливе бінарне дерево, де кожен вузол має посилання на ліве та праве під деревці та посилання на значення елемента цього вузла.
Або ви можете створити нав'язливий, де посилання на ці під-дерева вбудовані у саме значення.
Прикладом нав'язливої структури даних може бути упорядкований перелік елементів, які можна змінювати. Якщо елемент змінюється, список потрібно впорядкувати, тому об’єкт списку повинен втручатися у конфіденційність елементів, щоб отримати їх співпрацю. тобто. елемент повинен знати про список, у якому він знаходиться, та повідомляти про зміни.
ORM-системи зазвичай обертаються навколо нав'язливих структур даних, щоб мінімізувати ітерацію над великими списками об'єктів. Наприклад, якщо ви отримаєте список усіх співробітників у базі даних, а потім зміните ім’я одного з них і хочете зберегти його назад у базі даних, нав'язливий список працівників повідомить, коли об'єкт працівника змінився, оскільки це Об'єкт знає, у якому списку він знаходиться.
Не нав'язливий список не розповідався б і повинен був з’ясувати, що змінилося і як воно змінилося само собою.