Una struttura dati intrusiva è quella che richiede l'aiuto degli elementi che intende archiviare per memorizzarli.
Lasciatemi riformulare. Quando metti qualcosa in quella struttura dati, quel "qualcosa" diventa consapevole del fatto che è in quella struttura dati, in qualche modo. L'aggiunta dell'elemento alla struttura dati modifica l'elemento.
Ad esempio, puoi creare un albero binario non intrusivo, in cui ogni nodo ha un riferimento ai sottoalberi sinistro e destro e un riferimento al valore dell'elemento di quel nodo.
Oppure puoi crearne uno intrusivo in cui i riferimenti a quei sottoalberi sono incorporati nel valore stesso.
Un esempio di una struttura di dati intrusiva sarebbe un elenco ordinato di elementi che sono mutabili. Se l'elemento cambia, l'elenco deve essere riordinato, quindi l'oggetto elenco deve intromettersi nella privacy degli elementi per ottenere la loro collaborazione. vale a dire. l'elemento deve conoscere l'elenco in cui si trova e informarlo dei cambiamenti.
I sistemi ORM di solito ruotano attorno a strutture di dati intrusive, per ridurre al minimo l'iterazione su grandi elenchi di oggetti. Ad esempio, se si recupera un elenco di tutti i dipendenti nel database, quindi si cambia il nome di uno di essi e si desidera salvarlo di nuovo nel database, l'elenco intrusivo dei dipendenti verrà comunicato quando l'oggetto dipendente è cambiato perché quello l'oggetto sa in quale elenco si trova.
Un elenco non invadente non sarebbe stato raccontato e avrebbe dovuto capire cosa è cambiato e come è cambiato da solo.