C#之初識單例模式

當咱們使用QQ的時候就會發現,他能夠啓動多個QQ,可是有時候,咱們不想這樣作,這時候咱們就須要使用到單例模式.
1.將Form2的構造函數轉爲私有
using System.Windows.Forms;
namespace 單例模式
{
    public partial class Form2 : Form
    {
        private Form2()
        {
            InitializeComponent();
        }
    }
}

2.提供一個靜態方法,返回一個對象java

using System.Windows.Forms;
namespace 單例模式
{
    public partial class Form2 : Form
    {
        private Form2()
        {
            InitializeComponent();
        }
        public static Form2 GetSingle()
        {
            Form2 form = new Form2();
            return form;
        }
    }
}

3.在Form1中調用函數

using System;
using System.Windows.Forms;
namespace 單例模式
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = Form2.GetSingle();//new Form2();
            form.Show();
        }
    }
} 

4.在Form2中建立一個單例spa

using System.Windows.Forms;
namespace 單例模式
{
    public partial class Form2 : Form
    {
        //全局惟一的單例
        public static Form2 FrmSingle = null;//這是一個靜態的字段,初值設爲null
        private Form2()
        {
            InitializeComponent();
        }
        public static Form2 GetSingle()
        {
            if (FrmSingle == null)//作一個判斷,若是FrmSingle爲null的時候在建立對象
            {
                FrmSingle = new Form2();//建立完這個對象以後不給Form2,給FrmSingle
            }
            return FrmSingle;//返回FrmSingle
        }
    }
}

作完以上的步驟,運行Form1,無論點幾回建立按鈕,都只是建立的哪個對象.orm

相關文章
相關標籤/搜索