我有一類是低於一..關於單設計不良
public class DataBaseDAO {
private DataBaseDAO() { }
public static synchronized DataBaseDAO getInstance() {
if (dao == null) {
dao = new DataBaseDAO();
}
return dao;
}
}
}
現在這個getInstance()方法可以被黑客攻擊:換句話說,這單可以被黑客入侵,並可以創建更多的對象。
我該如何確保安全?
這可以通過反思,classloaders和deserilizaton來打破。
我應該去同步塊,而不是整個方法同步?
它會影響性能嗎?
謝謝大家,實際上我不想介紹新的枚舉,因爲在現有的結構中,然後會發生很多變化,我正在尋找如何改進現有的SINGLETON與當前類本身的方法..! !
看看[在Java中使用Enum作爲單例的最佳方法是什麼?](http://stackoverflow.com/questions/427902/what-is-the-best-approach-for-using -an-enum-as-a-singleton-in-java) – maba 2012-08-08 15:12:15
[Enum是在Java中實現單例的最好方法。] [1] 注:單身人士通常被認爲是不好的做法。 [1]:http://stackoverflow.com/questions/70689/what-is-an-efficient-way-to-implement-a-singleton-pattern-in-java – 2012-08-08 15:12:37
而不把你的getInstance方法在構造函數中,因爲這樣它不能編譯 – 2012-08-08 15:13:09