單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法(靜態方法)。
比如hibernate的sessionfactory,它充當資料儲存源的**,並負責建立session物件。sessionfactory並不是輕量級的,一般情況下,乙個專案通常只需要乙個sessionfactory就夠了,這時就會使用到單例模式。3.1.2 單例模式的八種方式
單例模式有八種方式:
1. 餓漢式(靜態常量);
2. 餓漢式(靜態**塊);
3. 懶漢式(執行緒不安全);
4. 懶漢式(執行緒安全,同步方法);
5. 懶漢式(執行緒安全,同步**塊);
6. 雙重檢查;
7. 靜態內部類;
8. 列舉
**演示:
public
class
singletontest1
}//餓漢式(靜態常量)
class
singleton
//2、本類內部建立物件例項
private
final
static singleton instance =
newsingleton()
;//3、提供乙個公有的靜態方法,返回例項物件
public
static singleton getinstance()
}
優缺點說明:
**演示:
public
class
singletontest2
}//餓漢式(靜態**塊)
class
singleton
//2、靜態**塊
private
static singleton instance;
static
//3、提供乙個公有的靜態方法,返回例項物件
public
static singleton getinstance()
}
優缺點說明:
**演示:
public
class
singletontest3
}//懶漢式(執行緒不安全)
class
singleton
//提供乙個靜態的公有方法,當使用到該方法時,才去建立instance
public
static singleton getinstance()
return instance;
}}
優缺點說明:
**演示:
public
class
singletontest4
}//懶漢式(執行緒安全,同步方法)
class
singleton
//提供乙個靜態的公有方法,加入同步處理的**,解決執行緒安全問題
public
static
synchronized singleton getinstance()
return instance;
}}
優缺點說明:
**演示:
public
class
singletontest5
}//懶漢式(執行緒安全,同步**塊)
class
singleton
public
static singleton getinstance()
}return instance;
}}
說明:
**演示:
public
class
singletontest6
}//雙重檢查
class
singleton
//提供乙個靜態的公有方法,加入雙重檢查**,解決執行緒安全問題,同時解決懶載入問題
public
static
synchronized singleton getinstance()
}}return instance;
}}
優缺點說明:
**演示:
public
class
singletontest7
}//靜態內部類
class
singleton
//寫乙個靜態內部類,該類中有乙個靜態屬性singleton
private
static
class
singleinstance
//提供乙個靜態的公有方法,直接返回物件
public
static
synchronized singleton getinstance()
}
優缺點說明:
**演示:
public
class
singletontest8
}//使用列舉,可以實現單例
enum singleton
}
優缺點說明:
單例模式保證了系統記憶體中該類只存在乙個物件,節省了系統資源,對於一些需要頻繁建立銷毀的物件,使用單例模式可以提高系統效能。
單例模式(詳細)
b站學習做的筆記 單例模式就是採取一定的方法保證整個軟體 統裡面對於某個類只能存在乙個例項 並且該類只提供乙個取物件例項的方法 靜態方法 餓漢式 靜態常量 餓漢式 靜態 塊 懶漢式 執行緒不安全 懶漢式 執行緒安全 同步方法 雙重檢查 靜態內部類 列舉 餓漢式的兩種寫法 1靜態常量 步驟 1.構造器...
詳細解說單例模式
public class singleton public static singleton getinstance public class singleton private singleton public static singleton getinstance 優點 在類裝載的時候就完成了...
單例模式 懶漢式案例
單例模式的概念 單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。關鍵點 1 乙個類只有乙個例項 這是最基本的 2 它必須自行建立這個例項 3 它必須自行向整個系統提供這個例項 懶漢模式 類載入時不初始化 public sta...