2016-11-25 9 views
-3

これはJavaでこの構文を見たことがありますこの構文クラスを理解する方法obj = class.method;

class obj = class.method;

TaskStackBuilder stack = TaskStackBuilder.create(this);

これはどういう意味ですか?

+1

それはインスタンス(静的)メソッドの呼び出しです。 – Axel

+0

私は 'TaskStackBuilder stack = new TaskStackBuilder;と書いておきます。 –

+1

@Rotwang:あるいはTaskStackBuilderスタック=新しいTaskStackBuilder(これ); –

答えて

1
TaskStackBuilder stack= TaskStackBuilder.create(this); 

それは何を意味するのでしょうか?

TaskStackBuilder.createタイプTaskStackBuilderのオブジェクトを返すことを意味します。そのようなメソッドは、通常、ビルダーまたはファクトリメソッドと呼ばれます。

例:

class TaskStackBuilder { 
    public static TaskStackBuilder create(Object obj) { 
     return new TaskStackBuilder(); 
    } 
} 

もちろん、あなたが見ているものは、おそらくobjの使用を作る(およびそれのためのより具体的な型を使用する)であろうが。

ファクトリメソッドは、オブジェクトインスタンスをキャッシュして再利用できる場合に特に便利です。例えば、Integerクラス・キャッシュ値127 throug -128用Integer.valueOf(int)キャッシュIntegerインスタンスを、そして他の人をキャッシュすることができる、あなたは(たとえば)Integer.valueOf(20)を行うときに、あなたは常にだけではなく(Integer同じインスタンスが返されます同等のもの)。

0

私は、Factory Patternということは、これをプライベートクラスコンストラクターで使用して、特定のインスタンスを作成できると思います。

あなたのクラスのデフォルトコンストラクタがプライベートで:

public SomeClass{ 
    private SomeClass(){ 
    } 
} 

とインスタンスを作成するために、民間consturctorを使用することができます作成​​方法を、呼び出すインスタンスを作成するため。

singleton patternも参照してください。オブジェクトのインスタンスが1つだけ必要な場合:

public class Test { private static Test _instance = null;

private Test(){}; 

public Test getInstance(){ 
    if(Test._instance == null){ 
     _instance = new Test(); 
    } 

    return Test._instance; 
} 

}

関連する問題