2016-11-25 15 views
-3

你有沒有在java中看過這個語法如何理解這個語法class obj = class.method;

class obj = class.method;

TaskStackBuilder stack = TaskStackBuilder.create(this);

這是什麼意思?

+1

這是一個實例(靜態)方法的調用。 – Axel

+0

我寧願寫'TaskStackBuilder stack = new TaskStackBuilder;' –

+1

@Rotwang:或者甚至是'TaskStackBuilder stack = new TaskStackBuilder(this);' –

回答

1
TaskStackBuilder stack= TaskStackBuilder.create(this); 

這是什麼意思?

這意味着TaskStackBuilder.create返回類型爲TaskStackBuilder的對象。像那樣的方法通常被稱爲建造者工廠方法。

例子:

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

雖然當然,你在看一個可能會利用obj(並使用更具體的類型吧)。

當對象實例可以被緩存和重用時,工廠方法特別有用。例如,Integer級高速緩存Integer.valueOf(int)緩存Integer實例爲值-128通過量127,並可以緩存別人,所以當你Integer.valueOf(20)(例如),你永遠回來的Integer相同實例(不僅僅是等同的)。

0

我認爲,你的意思是Factory Pattern你可以使用這個私有類的構造函數來創建一個特化的實例。

類的默認構造函數是私有:

public SomeClass{ 
    private SomeClass(){ 
    } 
} 

和創建調用創建方法,該方法可以使用私人consturctor創建一個實例的實例。請參閱singleton pattern。您只需要一個對象實例:

public class Test {__total_test = _instance = null;

private Test(){}; 

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

    return Test._instance; 
} 

}