Was bedeutet es für eine Datenstruktur zu "aufdringlich"?
Gesehen hab ich den Begriff aufdringlich verwendet, um zu beschreiben Datenstrukturen, wie Listen und stacks, aber was bedeutet es?
Können, geben Sie ein code-Beispiel für eine aufdringliche Daten-Struktur, und wie unterscheidet es sich von einem nicht-intrusive ein?
Auch, warum es zu aufdringlich (oder, nicht-intrusive)? Was sind die Vorteile? Was sind die Nachteile?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen aufdringlichen Daten-Struktur ist eine, die erfordert, helfen, aus den Elementen, die es beabsichtigt, zu speichern, um zu speichern.
Lassen Sie mich umformulieren, dass. Wenn Sie etwas in diese Datenstruktur, dass "etwas" Kenntnis von der Tatsache, dass es in dieser Daten Struktur, in gewisser Weise. Das hinzufügen das element der Datenstruktur ändert das element.
Zum Beispiel, können Sie erstellen eine nicht-intrusive, binärer Baum, wobei jeder Knoten einen Verweis auf den linken und rechten sub-Bäume, und eine Referenz auf das element mit dem Wert dieses Knotens.
Oder Sie kann eine aufdringliche, wobei die Verweise auf diese sub-Strukturen sind eingebettet in das ein Wert an sich.
Ein Beispiel für eine aufdringliche Datenstruktur wäre eine geordnete Liste von Elementen, die wandelbar ist. Wenn das element verändert, die Liste muss neu geordnet werden, so dass die Liste, Objekt eindringen in die Privatsphäre der Elemente, um Ihre Zusammenarbeit. dh. das element hat zu wissen, über die Liste ist es in, aus und informieren Sie bei änderungen.
ORM-Systemen in der Regel drehen sich um intrusive Datenstrukturen, zu minimieren iteration über große Listen von Objekten. Zum Beispiel, wenn Sie Sie abrufen, eine Liste aller Mitarbeiter in der Datenbank, dann ändern Sie den Namen von einem von Ihnen, und möchten, speichern Sie es zurück zu der Datenbank, die intrusive Liste der Mitarbeiter würde erzählt werden, wenn das employee-Objekt geändert, weil das Objekt weiß, welche Liste es ist.
Einem non-intrusive Liste, wäre nicht gesagt, und hätte, um herauszufinden, was sich geändert hat und wie es sich verändert, von selbst.
In eine intrusive container-die Daten selbst ist verantwortlich für die Speicherung der erforderlichen Informationen für die container. Das bedeutet, dass auf der einen Seite die Daten geben muss spezialisiert werden, je nachdem, wie es gespeichert wird, auf der anderen Seite bedeutet es, dass die Daten "weiß", wie es gespeichert und können so optimiert werden etwas besser.
Non-intrusive:
Aufdringlich:
Bevorzuge ich persönlich aufdringliche design für die Transparenz.