Singleton(單態(tài))
中心思想:是保證在Java應(yīng)用程序中,一個(gè)類(lèi)Class只有一個(gè)實(shí)例存在
主要作用:
Singleton 模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類(lèi)Class只有一個(gè)實(shí)例存在。
在很多操作中,比如建立目錄 數(shù)據(jù)庫(kù)連接都需要這樣的單線(xiàn)程操作。
使用Singleton的好處還在于可以節(jié)省內(nèi)存,因?yàn)樗拗屏藢?shí)例的個(gè)數(shù),有利于Java垃圾回收(garbage collection)。
Singleton 也能夠被無(wú)狀態(tài)化。提供工具性質(zhì)的功能,
具體操作步驟:
1,private構(gòu)造方法
2,private靜態(tài)成員引用
3,public的靜態(tài)方法提供給外部使用。

2

3

4

5

6

7

8

9

10

11

12

上面是餓漢式,可以多線(xiàn)程。
public class LazySingleton
{
/**
* @label Creates
*/
private static LazySingleton m_instance = null;
private LazySingleton() { }
(synchronized )public static LazySingleton getInstance()
{
if (m_instance == null)
{
m_instance = new LazySingleton();
}
return m_instance;
}
}
只適合單線(xiàn)程的條件下,如果使用多線(xiàn)程的話(huà),那么必須采用synchronized來(lái)修飾方法,使得每個(gè)線(xiàn)程進(jìn)入此方法前都要等待別的線(xiàn)程離開(kāi)此方法。也就是說(shuō)不會(huì)有2個(gè)線(xiàn)程同時(shí)進(jìn)入方法。
posted on 2009-04-11 01:46 luofeng225 閱讀(221) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 設(shè)計(jì)模式