1.定義

保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。

 

2.適用性

1)當(dāng)類只能有一個(gè)實(shí)例而客戶可以從一個(gè)眾所周知的訪問點(diǎn)訪問它時(shí)。

2)當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過子類化可擴(kuò)展的,并且客戶應(yīng)該無需更改代碼就能使用一個(gè)擴(kuò)展的實(shí)例時(shí)。

 

3.結(jié)構(gòu)

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn) 

1 單例模式類圖

注:

Singleton:定義一個(gè)Instance操作,允許客戶訪問它的唯一實(shí)例。Instance是一個(gè)類操作(C#中為靜態(tài)方法),Singleton負(fù)責(zé)創(chuàng)建它自己的唯一實(shí)例。

4.實(shí)現(xiàn)方法

1)經(jīng)典模式

靜態(tài)變量uniqueInstance存儲(chǔ)唯一實(shí)例。公有靜態(tài)方法GetInstance提供訪問SingletonFirst的全局訪問點(diǎn),由于除了GetInstance方法外,類的成員均為私有的,所以GetInstance提供的為唯一訪問方式。在GetInstance()方法中,對(duì)uniqueInstance是否為null做了判斷,因此使得對(duì)象只能被實(shí)例化一次。

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開發(fā),動(dòng)畫培訓(xùn)

 1 public class SingletonFirst 2 { 3       private static SingletonFirst uniqueInst
        
		

網(wǎng)友評(píng)論