一、我的了解
單例模式,其目的是讓某個類隻有一個執行個體,并且友善于外界通路,進而實作友善的對執行個體個數的限制
很明顯,采用單例模式有如下作用:
1、友善對不能并發的資源統一管理
2、節省記憶體開銷,避免每一次處理都建立對象
3、能友善共享,讓所有對象通路
二、應用
生活中有哪些可以使用單例模式:
1、皇帝,在朝廷上僅一個皇帝,在古代皇帝處理事務并不能并發執行,如果每個臣子都建立一個皇帝去向皇上提問,那估計皇上會徹底崩潰,每個人跟皇帝溝通前,先要看皇帝是否沒與人溝通,是以,用單例模式確定了僅一位皇帝,而大家可以共享通路皇帝來得到皇帝的狀态
2、網站記錄通路人數,大家都對同一個對象進行通路,擷取人數以及增加通路次數,在使用最小記憶體開銷的同時又能確定讓所有對象通路
3、printer spoolter,一台計算機可以用多個列印機,但隻能夠有一個printer spoolter,避免兩個列印作業同時輸出到列印機中
4、網絡會議,會議室隻能有一個,得到會議室位址後,才能夠加入會議中來,確定大家通路的是同一個會議
三、代碼
using System;
using System.Collections.Generic;
using System.Text;
namespace ModeDemo.Singleton
{
/// <summary>
/// 單件模式
/// </summary>
public class Singleton
{
private static Singleton instance;
protected Singleton()
{ }
public static Singleton Instance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
///1、單件模式的使用
Singleton.Singleton s1 = Singleton.Singleton.Instance();
Singleton.Singleton s2 = Singleton.Singleton.Instance();
if (s1 == s2)
{
Console.WriteLine("這兩個對象是同一下對象");
}
Console.Read();