在開發
c#專案的時候往往會遇到這樣的場景:整個系統都最小化到托盤,然後使用者想要雙擊托盤顯示出主介面,而此時你需要在顯示主介面的時候彈出乙個驗證使用者資訊的對話方塊,要求使用者輸入密碼等來驗證。這樣的場景就意味著你必須對密碼驗證框進行單一例項,否者你雙擊一次托盤就顯示一次驗證框,到最後就會產生不必要的麻煩
…單一模式在《深入淺出設計模式》一書裡面算是最最簡便的乙個模式了,主要是為了防止系統多次例項化窗體。要實現單一模式很簡單,有很多種方法:
1、只要把該類的建構函式設定為私有,而且在該類中例項乙個該類物件,並在類中做乙個靜態返回該物件就可以了
~~不過這裡要注意該物件是否為
null
或者已經
isdisposed
(例子來自《大話設計模式》中的單例模式)
namespace
單例模式
public static formtoolbox getinstance()//
靜態方法,返回類物件
return ftb;//
返回該物件}}
}1)主窗體:
namespace
單例模式
private void form1_load(object sender, eventargs e)
private void toolstripmenuitemtoolbox_click(object sender, eventargs e)
private void toolstripbutton1_click(object sender, eventargs e)}}
2:不對該類做任何的處理,在類外其他地方如果要做單一處理的話,只需要宣告乙個靜態且私有的類物件,然後判斷它是否
null
或者isdisposed
就可以了
~如下:
private static
formtoolboxftb
;//宣告靜態的私有類物件
if (
ftb== null ||
ftb.isdisposed)
//判斷是否已經引用了物件或者已經清理掉
else if (!
ftb.visible)
ftb.activate();//
啟用該物件
這樣在你雙擊托盤的時候就會彈出資料密碼的驗證框,假如你再雙擊托盤則相當於啟用了該驗證框
…
專案中的單例模式
在開發 c 專案的時候往往會遇到這樣的場景 整個系統都最小化到托盤,然後使用者想要雙擊托盤顯示出主介面,而此時你需要在顯示主介面的時候彈出乙個驗證使用者資訊的對話方塊,要求使用者輸入密碼等來驗證。這樣的場景就意味著你必須對密碼驗證框進行單一例項,否者你雙擊一次托盤就顯示一次驗證框,到最後就會產生不必...
單例模式 單例模式
餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...
單例 單例模式
簡單的實現乙個單例 instancetype sharedinstance return instance 真正的單例模式 myclass sharedinstance return instance id allocwithzone nszone zone return nil id copywi...