黑馬程式設計師 單例模式

2021-06-22 18:18:20 字數 1200 閱讀 4685

----------------------

asp.net+unity開發、

.net培訓、期待與您交流! ----------------------

單例模式

解決乙個類在記憶體中只存在乙個物件的情況

為了保證避免程式過多建立物件,禁止其他程式建立該類物件

為了其他程式可以訪問該類物件,只好在本類中自定義物件

為了方便其他程式對自定義物件的訪問,可對物件提供一些訪問方式。

單例模式實現方式

建構函式私有化

在類中建立本類物件

提供獲取該物件的方法

3.1. 單例模式——懶漢式

物件時方法被呼叫的時候,才初始化,也稱物件延時載入

public classsingle 

private staticsingle single;

public staticsingle getsingle()

}

存在的隱患:

當不同的類同事呼叫getsingle()方法時,存在物件被重複建立的風險,如何解決?引入同步鎖。

同步函式:這種方法相對效率比較低

public classsingle 

private staticsingle single;

public static synchronizedsingle getsingle()

}同步**塊:降低了獲取鎖的次數,提高了效率

public staticsingle getsingle()

return single;

}

3.2. 單例模式——餓漢式

類已進入記憶體,就建立好了物件,程式示例:

public classsingle 

private staticsingle single = newsingle();

public staticsingle getsingle()

}

----------------------

asp.net+unity開發、

.net培訓、期待與您交流! ----------------------詳細請檢視:

www.itheima.com

黑馬程式設計師 單例模式

什麼叫單例模式 單例模式 singleton 是一種常用的設計模式。單例模式,也叫單子模式。在應用這個模式時,單例物件的類必須保證只有乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件,這樣有利於我們協調系統整體的行為 單例模式特點 顯然單例模式的要點有三個 一是某個類只能有乙個例項 二是它必...

黑馬程式設計師 單例設計模式

asp.net android io開發s net培訓 期待與您交流!設計要求 1.只能被例項化一次。2.由自己建立例項。3.能向該類任意引用提供上述例項。方式一 餓漢式 class single public static single getinstance 方式二 懶漢式 class sing...

黑馬程式設計師 單例設計模式

asp.net android ios開發 net培訓 期待與您交流!單例設計模式 解決乙個類在記憶體中只存在乙個物件。想要保證物件唯一。1,為了避免其他程式過多建立該類物件。先禁止其他程式建立該類物件 2,還為了讓其他程式可以訪問到該類物件,只好在本類中,自定義乙個物件 3,為了方便其他程式對自定...