使用Singleton設計與繼承我有其中的代碼是有點這樣寫的在多線程應用程序
public Interface SuperCLass{
//....to do some methods
}
public class BaseClass1 implements SuperCLass{
//....to do some methods
}
public class BaseClass2 implements SuperCLass{
//....to do some methods
}
現在,在我的應用程序只有一個對象可以被實例化超類引用的應用程序,即同步單。現在
,我可以包括
public static synchronized SuperCLass getInstance(){
//initialise
}
任何基類的
,但我不能包括在父類接口此聲明,由於我不能回來使用超類的引用基類的實例。 例如 我想以後要做到這一點(它是一個非常模糊的例子)
BaseClass1 bc1 = BaseClass1.getInstance();
SuperClass sc = bc1.getInstance();
現在某處代碼
bc1=sc.getInstance();
如何才能實現這一目標?
注:多個線程會訪問這些對象,因此同步是強制性
爲什麼你想顯式強制轉換爲'SuperClass'? 'BaseClass1'繼承了「接口」。 – Smutje 2014-09-22 10:53:58
你的問題目前還不清楚,但只要在singleton工廠方法中加入'synchronized',絕對不會讓你的單例線程安全。 – 2014-09-22 10:54:14
你的陳述「使用超類的引用取回基類的實例」尚不清楚。 – 2014-09-22 10:54:26