2009-06-16 6 views
3

オブジェクト内に同じ型のオブジェクトがある場合、それは何と呼ばれますか?オブジェクト内のオブジェクト

例:

public class Foo{ 

    public Foo myFoo; 

} 
+4

申し訳ありませんが、私は抵抗できませんでした。あなたはオブジェクトが好きだと聞きました。私はあなたのオブジェクトにオブジェクトを置くので、あなたが反対している間に対処することができます。 – Kibbee

+1

kibbee、+1は、その単純なコメントにどれくらいの割合で説明したのかを説明するには十分ではありません。 –

+0

ob-ception !!!!! –

答えて

14

私はこのための具体的な名前はないと思います。このコンセプトは多くの異なる共通プログラミング構造で使用されていますが例えば、グラフ、ツリー、またはリンクされたリストを表すとき、ノードは通常、それらがリンク/接続される他のノードへの参照を有する。

+0

はい私はそれをツリーやリスト、またはその形状が何であれ呼び出すでしょう。 – ChrisW

4

再帰的封じ込め.... :)

+1

あなたはそれを作りましたか? – StriplingWarrior

+0

はい、「再帰的構成」という用語もあります(http://en.wikipedia.org/wiki/Object_composition#Recursive_composition) –

+0

はい。 :)再帰的な構成も良いです:) –

5

つまり、Fooは「再帰的データ構造」です。これの例は、木、グラフ、リンクされたリストなどである。少なくともいくつかの再帰構造を使用しない多くの重要なプログラムは書かれていない。どんなSQLサーバー実装でも、実行されるクエリプランは同様の方法で定義されることがよくあります。小さな例として、WHERE句はデータに作用FilterNodeに変換される可能性があります(表スキャンのような)いくつかの他のNodeから受信した:

public interface Node { } 

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

多くの場合、全体的な構造は、非循環有向グラフを形成し、これ再帰的に安全にトラバースすることは簡単です。しかし、それがサイクルを持っているなら、あなたは無限回帰(上記の別の答えはユーモラスな警告である)にならないように注意する必要があります。

1

キビーが言ったことに加えて、これは複合パターンのタイプです

関連する問題