一、我的理解
单例模式,其目的是让某个类只有一个实例,并且方便于外界访问,从而实现方便的对实例个数的限制
很明显,采用单例模式有如下作用:
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();