防止重複建立視窗 單例模式

2021-06-05 02:58:13 字數 708 閱讀 9190

我們經常會遇到這種情況:單擊窗體上乙個按鈕,彈出乙個子窗體,當再次單擊按鈕是,還會彈出乙個同樣的窗體,我們肯定不希望這樣。這個問題我們可以通過「單例模式」解決,那麼什麼是「單例模式」?

單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

顯然單例模式的要點有三個;一是某個類只能有乙個例項;二是它必須自行建立這個例項;三是它必須自行向整個系統提供這個例項。

下面來看乙個示例

主視窗為mainform,子視窗為childform

//在子視窗中定義例項變數和獲取該變數的屬性

private static childform instance = null;

public static childform instance

return instance; }

} //建構函式中

public childform( )

//窗體關閉後變數置空

private void childform_formclosed(object sender, formclosedeventargs e)

//mainform中呼叫

private void tsbselectbyattributes_click(object sender, eventargs e)

如果建立子視窗時要傳遞引數,將其屬性改為方法就可以

建立型模式 單例模式

餓漢式 package com.hfview.designmode.signle 1.餓漢式 就是在初始化成員變數的時候就獲取例項物件 2.public class signlemode private signlemode 懶漢式 package com.hfview.designmode.sig...

建立型模式 單例模式

概述 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。適用性 當類只能有乙個事例而且客戶可以從乙個眾所周知的訪問點訪問它時。當這個唯一事例應該是通過子類化可擴充套件的,並且客戶應該無需更改 就能使用乙個擴充套件的例項時。參與者 singleton 定義乙個instance操作,允許客戶訪問它...

建立型模式 單例模式

1.乙個類只能建立乙個物件 2.應用 主要應用與資料庫應用,可以避免大量的new操作消耗資源 3.uml類圖 user 何曉巨集 date 2018 9 27 time 15 48 namespace singleton class singleton 判斷 instance是否為空,為空則新建乙個...