国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.NET設計模式之單例模式

2019-11-17 02:14:48
字體:
來源:轉載
供稿:網友

.NET設計模式之單例模式

  說說我學習單例模式的原因:

  在做MDIWinForm程序的時候,需要每個子窗體只能打開一次(同時只能有一個子窗體實例),之前網上看到好多種解決方案,各種嘗試都解決不了我遇到的問題,相信很多人跟我一樣,現在可以告訴大家,單利模式可以完美解決。

  單例模式總結:

  1. 目標:一個類只能有一個實例存在
  2. 類的實例通過自身來創建
  3. 由于類實例只能有一個,所以類的構造函數必須是PRivate的
  4. 類內部必須有一個邏輯單元來返回給外部一個類實例(對象)

  以下是實現過程:

  我的MDI程序子窗體(用戶管理--UserMgrForm)  

        private static UserMgrForm UsrForm;  //子窗體實例        private static readonly Object asyncRoot = new Object();  //只讀的object對象     //構造函數        private UserMgrForm()        {            InitializeComponent();        }     //子窗體創建實例的方法(必須是靜態,因為不允許用類實例調用實例方法,那樣就沒意義了)        public static UserMgrForm GetInstance()        {            if (UsrForm == null)            {                lock (asyncRoot)  //這個是用在多線程程序下的雙鎖                {            //判斷子窗體實例是否為null                    if (UsrForm == null)                    {                        UsrForm = new UserMgrForm();                    }                }            }            return UsrForm;        }          //修改子窗體UserMgrForm.Designer.cs文件中的代碼為     protected override void Dispose(bool disposing)        {            if (disposing && (components != null))            {                components.Dispose();            }       //base.Dispose(disposing);  //原來的代碼            base.Hide();        }     //那么在主窗體中如何實現打開子窗體呢:     //用戶管理        private void miEmpMgr_Click(object sender, EventArgs e)        {            SysMenu.UserMgrForm.GetInstance().Mdiparent = this;            SetUI.SetFormTitle(SysMenu.UserMgrForm.GetInstance(), "用戶管理");  //窗體標題            SetUI.SetMdiChildSize(SysMenu.UserMgrForm.GetInstance());  //設置子窗體初始尺寸            SetUI.SetMdiFormState(SysMenu.UserMgrForm.GetInstance());  //設置子窗體狀態            SysMenu.UserMgrForm.GetInstance().Show();  //顯示子窗體        }

  單例模式還有幾種寫法,這里就不一一些出來了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴林左旗| 武乡县| 外汇| 泽普县| 上蔡县| 连南| 龙岩市| 镇沅| 财经| 张家口市| 浦东新区| 寻乌县| 金溪县| 徐汇区| 怀仁县| 连州市| 巴林左旗| 蓬安县| 巴彦淖尔市| 聂荣县| 黄浦区| 南平市| 天全县| 喀喇沁旗| 凤台县| 潮州市| 赤壁市| 安西县| 广西| 神木县| 盐源县| 习水县| 永修县| 绍兴县| 乌兰察布市| 台州市| 灵台县| 莆田市| 邻水| 文化| 通州市|