---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS開發</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------
單例設計模式:解決一個類在內存中只存在一個對象
保證對象唯一的三步驟:
1,爲了避免其他程序過多建立該類對象,先禁止其他程序建立該類對象
2,爲了讓其他程序可以訪問到該類對象,只好在本類中,自定義一個對象
3,爲了方便其他程序對自定義對象的訪問,可以對外提供一些訪問方法
使用:
還想別的類一樣該怎麼描述怎麼描述,該怎麼添加成員怎麼添加成員
但是,當需要將該事物的對象保證在內存唯一時,就將上述三步驟加上。
/*
餓漢式
先初始化對象
Single類一進入內存,就已經創建好了對象
*/
class Single
{
private Single(){}
private static Single s = new Single();
public static Single GetInstance()
{
return s;
}
}
/*
懶漢式
又稱延遲加載的單例模式
對象是方法被調用時,才初始化。
single類進內存,對象還沒有存在,只有調用了GetInstance方法時, 才建立對象
*/
class Single1
{
private Single(){}
private static Single s = null;
public static Single GetInstance()
{
if(s==null)
{
synchronized(Single.class)//線程同步,防止創建多個對象
{
if(s==null)
s = new Single();
}
}
return s;
}
}
/*
建議:開發中使用餓漢式
餓漢式:這個在開發的時候是經常用到的,這樣不會出現線程的安全情況
懶漢式:這個會出現線程不安全,即使你用鎖進行了限制,但是會浪費判斷時間,所以效率低
*/
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS開發</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------