2009-06-16 20 views
3

Wie heißt es, wenn ein Objekt ein Objekt desselben Typs in sich hat?Objekt innerhalb des Objekts

Beispiel:

public class Foo{ 

    public Foo myFoo; 

} 
+4

Entschuldigung dafür, ich konnte nicht widerstehen. Yo Dawg, ich habe gehört, dass du Objekte magst, also lege ich ein Objekt in dein Objekt, damit du widersprechen kannst, während du abnimmst. – Kibbee

+1

kibbee, ein +1 reicht nicht aus, um zu erklären, wie sehr ich mich an diesem einfachen Kommentar genau hingelegt habe ... –

+0

ob-ception !!!!! –

Antwort

14

Ich glaube nicht, dass es für diese irgendwelche speziellen Namen. Obwohl dieses Konzept in vielen verschiedenen gängigen Programmierkonstrukten verwendet wird. Wenn zum Beispiel ein Graph, eine Struktur oder eine verknüpfte Liste dargestellt wird, haben die Knoten normalerweise Referenzen auf andere Knoten, mit denen sie verbunden sind/verbunden sind.

+0

Ja, ich würde es einen Baum oder eine Liste oder was auch immer seine Form ist nennen. – ChrisW

4

rekursive Eindämmung .... :)

+1

Hast du das gerade erfunden? – StriplingWarrior

+0

Ja, es gibt auch den Begriff "rekursive Komposition" (http://en.wikipedia.org/wiki/Object_composition#Recursive_composition) –

+0

Ja. :) Rekursive Komposition ist auch gut :) –

5

Dies bedeutet, dass Foo eine 'rekursive Datenstruktur' ist. Beispiele hierfür sind Bäume, Graphen, verknüpfte Listen usw. Es sind nicht viele signifikante Programme geschrieben, die nicht wenigstens einige rekursive Strukturen verwenden, z. In jeder SQL-Server-Implementierung ist es ziemlich üblich, dass der Abfrageplan, der ausgeführt wird, auf ähnliche Weise definiert wird. Als kleines Beispiel könnte die WHERE Klausel auf eine FilterNode übersetzt bekommen, die von einem anderen Node auf Daten wirkt empfangen wird (wie ein Table-Scan):

public interface Node { } 

public class FilterNode implements Node { 
    public Node underlyingNode; 
    public Condition filterCondition; 
} 

In vielen Fällen ist die Gesamtstruktur eines gerichteten azyklischen Graphen bildet, die bedeutet, es ist einfach, es rekursiv sicher zu durchlaufen. Aber wenn es Zyklen hat, dann müssen Sie darauf achten, dass Sie nicht in unendliche Rekursion geraten (worüber eine andere obige Antwort humorvoll warnt).

1

Um hinzuzufügen, was Kibbee sagte, ist dies eine Art von einem zusammengesetzten Muster

Verwandte Themen