1. 程式人生 > >單例類的總結

單例類的總結

單例 防止 懶漢 new str pub 兩種 test rgs

/**
* 單例類的兩種方法。
* 1.餓漢式
* 當類一加載就開始創建對象
* 2.懶漢式
* 當需要使用到類的對象是調用類的類方法才開始創建對象,想比較上面而言是
* 懶漢式。
* 註意,單例類的特點:
* 1.必須要將構造函數私有化,這樣才能防止別的類通過構造方法來建立對象,但是也是因為如此,所以
* 單例類的成員變量和成員函數都必須要用static修飾,因此要想調用單例類的函數,只能通過類名.類方法的方式來進行
* 調用。
* 2.必須要在類內創建一個本類的對象。
* 3.向外提供一個公共的類 方法,使得別的類可以調用這個函數來獲得對象。
* 最後用==來判斷是否是產生了一個對象。
* @author 李明明
*
*/
public class SingletonTest {

public static void main(String[] args) {
singleton s1 = singleton.getSingleton();
singleton s2 = singleton.getSingleton();
singleton2 x1 = singleton2.getSingleton();
singleton2 x2 = singleton2.getSingleton();
System.out.println(s1==s2);
System.out.println(x1==x2);

}

}
//餓漢式單例模式。
class singleton
{
singleton(){

}
private static singleton s = new singleton();
public static singleton getSingleton(){
return s;
}


}
class singleton2
{
singleton2(){

}
private static singleton2 s = null;
public static singleton2 getSingleton(){
if(s==null)
{
s= new singleton2();
}else{
return s;
}
return s;

}


}

單例類的總結