單例設計模式的目的是使得類的一個對象成爲系統中唯一實例。如何保證對象唯一性呢?
不允許其他程序用new創建該類對象。
在該類創建一個本類實例。
對外提供一個方法讓其他程序可以獲取該對象。
步驟:
(1)私有化該類構造函數。
(2)通過new在本類中創建一個本類對象。
(3)定義一個公有的方法,將創建的對象返回。
方法一——餓漢式
class Single{
private static Single s = new Single();//直接創建一個該類對象
private Single(){}
public static Single getInstance(){
return s;
}
}
方法二——懶漢式class Single
{
private static Single s = null;
private Single(){}
public static Single getInstance()
{
if(s==null)//解決多線程中的效率問題
{
synchronized(Single.class)//解決多線程中的安全問題
{
if(s==null)
s = new Single();
}
}
return s;
}
}